Как получить a1Notations при возврате функции FindAll (диапазон, диапазон, диапазон, диапазон)? - PullRequest
1 голос
/ 30 июня 2019

Я пытаюсь найти в листе Google определенное ключевое слово с этим кодом:

var completeSearch = dataSheetName.createTextFinder(searchTerm).findAll();

Когда я регистрирую это, переменная возвращает [Range, Range, Range, Range]. Есть ли способ заставить его возвращать значения ячеек для каждого вхождения этого ключевого слова?

Редактировать: я не имел в виду, что мне нужно было возвращать значения VALUES ячейки, как в содержимом ячейки, а скорее само имя ячейки, например (A4).

1 Ответ

0 голосов
/ 01 июля 2019
  • Вы хотите получить значения из следующего скрипта.
    • var completeSearch = dataSheetName.createTextFinder(searchTerm).findAll();
  • dataSheetName - это лист в электронной таблице.
    • Об этом я подумал из имени переменной dataSheetName.
  • Вы хотите использовать скрипт Google Apps.

Еслимое понимание верно, как насчет этой модификации?

Точки модификации:

  • Значения, полученные с помощью findAll(), равны [Range, Range,,].Чтобы извлечь значения из Range, в этом случае используются getValue() и getValues.
  • В вашей ситуации вам также может понадобиться значение строки искомого значения.Поскольку значения из каждого Range совпадают со значением searchTerm.Таким образом, в этом примере сценария извлекаются как значение искомого диапазона, так и значения строки искомого диапазона.

Пожалуйста, подумайте об этом как об одном из нескольких ответов.

Модифицированный скрипт:

Перед использованием этого скрипта, установите переменные searchTerm и sheetName.

function myFunction() {
  var searchTerm = "sample"; // Please set this.
  var sheetName = "Sheet1"; // Please set this.

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var dataSheetName = ss.getSheetByName(sheetName);
  var completeSearch = dataSheetName.createTextFinder(searchTerm).findAll();
  for (var i = 0; i < completeSearch.length; i++) {
    var range = completeSearch[i];
    var value = range.getValue();
    var rowValue = dataSheetName.getRange(range.getRow(), 1, 1, dataSheetName.getLastColumn()).getValues();
    Logger.log(value) // Value of the searched range
    Logger.log(rowValue) // Values of the row of searched range
  }
}

Примечание:

  • Выпоказывают часть вашего сценария в вашем вопросе.Поэтому я дополнил другую часть для работы сценария.Если это отличалось от вашего сценария, измените его.

Ссылки:

Если я неправильно понял ваш вопрос и это не тот результат, который вам нужен, я приношу свои извинения.

Редактировать:

  • Вы хотите получить координаты (a1Notation) ячеек, полученных с помощью поиска.

Из вашего ответа я понял, как выше.Если мое понимание верно, как насчет этого примера скрипта?

Модифицированный скрипт:

function myFunction() {
  var searchTerm = "sample"; // Please set this.
  var sheetName = "Sheet1"; // Please set this.

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var dataSheetName = ss.getSheetByName(sheetName);
  var completeSearch = dataSheetName.createTextFinder(searchTerm).findAll();
  for (var i = 0; i < completeSearch.length; i++) {
    var range = completeSearch[i];
    Logger.log(range.getA1Notation())
  }
}

Ссылка:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...