Сделайте так, чтобы B1 возвращал A1, B2 возвращал A2, и так далее в сценарии в Google Sheets. Каково правильное задание диапазона ячеек для этой функции? - PullRequest
0 голосов
/ 14 января 2019

Это очень простой вопрос, я почти чувствую себя глупо, задавая его.

Я пишу функцию, которая должна записывать данные из одной ячейки в ПРИМЕЧАНИЕ от другой ячейки в листах Google.

Все работает нормально, если я тестирую одну ячейку в другую, но поскольку я не хочу, чтобы она была только для одной ячейки, я хочу автоматизировать ее для всех остальных ячеек двух столбцов:

Я хочу, чтобы B1 вернул A1, B2 вернул A2, B3 вернул A3 и т. Д. Но формулы, которые я пробовал, только создают заметки со значением в В2 для всех ячеек А. Я понимаю, что это ошибка в ссылках и что я, вероятно, должен где-то использовать знак доллара, но, поскольку я не знаком с этим, я все еще не могу понять это самостоятельно.

Вот функция:

function addNote() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  var targetCell = sheet.getRange("A1:A10");
  var sourceCell = sheet.getRange("B1:B10");

  var noteText = sourceCell.getValue();

  targetCell.setNote(noteText);
}

Как я уже сказал, когда я оставляю только "A1" в первой скобке и "B1" во второй, это работает. Или даже если я просто скопирую один и тот же код и вручную заменю каждую новую копию на отдельные ячейки, которые мне нужны.

1 Ответ

0 голосов
/ 14 января 2019

Если я вас правильно понимаю, то .setNotes и .getValues ​​должны выполнять эту работу.

См. Фрагмент ниже.

function addNote() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  var targetCell = sheet.getRange("A1:A10");
  var sourceCell = sheet.getRange("B1:B10");

  var noteText = sourceCell.getValues();

  targetCell.setNotes(noteText);
}
...