@Andrew2020

Как в Google Script создать функцию с определением, есть ли в ячейке ссылка?

Речь о функции, которая будет менять числовое значение одной ячейки в зависимости от того, появилась ли ссылка в другой ячейке? Если в первой ячейку добавилась ссылка, то числовое значение в другой ячейке увеличивается на единицу
  • Вопрос задан
  • 40 просмотров
Пригласить эксперта
Ответы на вопрос 1
stomaks
@stomaks
Разработчик Google Apps Script (stomaks.me)
Вот код пользовательской функции:

Тут пример работы:
База формул для google таблицы

/**
 * @OnlyCurrentDoc
 *   EN: Restricts script access to the current sheet only.
 *   RU: Ограничивает доступ скрипта только к текущей таблице.
 */

/* exported hasLink */
/* globals sorosWrapper_ */

/**
 * : Checks if the range contains links.
 * 
 * : Проверяет есть ли в диапазоне ссылки.
 * 
 * : 1.0
 * 
 * : Stoyanov Maksim (stomaks)
 * : stomaks.me
 * : G-Apps-Script.COM
 * 
 * @param {[cell_address]} cell_address
 *   : Cell address.
 * 
 *   : Адрес ячейки.
 *
 * @return
 *   : true - if there are links in the range, false - if not.
 * 
 *   : true - если в диапазоне есть ссылки, false - если нет.
 * 
 * @customfunction
 */
function hasLink ( cell_address ) {
  const sheet = SpreadsheetApp.getActiveSheet();
  
  const formula = sheet.getActiveRange().getFormula();
  const args = formula.match(/hasLink\(([^\)]*?)\)/i)[1].trim();
  range = sheet.getRange(args);
  
  const values = range.getRichTextValues();
  
  const result = [];
  
  for ( let cells of values ) {
    for ( let cell of cells ) {
      const link_url = cell.getLinkUrl();
      if (link_url) result.push(link_url);
    }
  }
  
  return result.length ? true : false;
}


---
stomaks.me
google-script.blog
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы