добавить строку в определенный столбец?

#google-apps-script #google-sheets

#google-apps-script #google-sheets

Вопрос:

 function dailyprofit() {
   var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Matt");
   var profit = SpreadsheetApp.getActiveSheet().getRange('O2').getValue();
   sheet.appendRow([,,,profit ]);
}
 

Здравствуйте, я пытаюсь использовать appendrow для помещения моей переменной в последнюю пустую ячейку строки D, однако appendRow выполняет ввод строки, а не только столбца D.
я бы хотел, чтобы «прибыль» добавлялась к строке 362, а не к строке 363 -> см. Пример здесь
Спасибо!

Ответ №1:

Вы можете использовать этот пример кода, чтобы получить последнюю строку столбца D:

   var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Matt");
  var profit = SpreadsheetApp.getActiveSheet().getRange('O2').getValue();
  var colValues = sheet.getRange("D1:D").getValues();
  var count = colValues.filter(String).length
  sheet.getRange(count 1,4).setValue(profit);
 

Что он делает?

  1. Получить все значения столбца D с помощью sheet.getRange("D1:D").getValues()
  2. Отфильтруйте массив строковыми значениями и получите его длину / количество. Пустые ячейки не будут учитываться.
  3. Увеличьте количество столбцов D на 1 и используйте Sheet.getRange(строка, столбец), чтобы получить ячейку под непустой ячейкой в столбце D. Используйте Range.setValue(значение), чтобы задать значение ячейки.

Пример вывода:

введите описание изображения здесь


ПРИМЕЧАНИЕ:

Это будет работать только при условии, что у вас нет пустой строки в столбце D.

Если у вас есть пустые строки в столбце D, вам может потребоваться добавить еще несколько смещений при увеличении количества.

Пример:

введите описание изображения здесь

  • У меня есть 2 пустые строки заголовка (строки 1 и 2). Следовательно, смещение количества строк должно быть 3.

Пример кода:

   var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Matt");
  var profit = SpreadsheetApp.getActiveSheet().getRange('O2').getValue();
  var colValues = sheet.getRange("D1:D").getValues();
  var count = colValues.filter(String).length
  sheet.getRange(count 3,4).setValue(profit);
 

Комментарии:

1. это сработало отлично, спасибо за помощь и отличное объяснение 🙂