Обновляйте только пустые строки с помощью Appscript

#javascript #google-apps-script #google-sheets

#javascript #google-приложения-скрипт #google-таблицы

Вопрос:

Вопрос об обновлении пустых строк. Ниже у меня есть запрос, который работает для обновления всех ячеек в столбце A, однако мне нужно изменить его, чтобы обновлять только пустые ячейки. Прямо сейчас приведенный ниже запрос обновит все ячейки в столбце B, которые содержат значение в столбце A. Проблема в том, что при этом перезаписываются все ячейки столбца B, а не только пустые ячейки.

Я пытаюсь найти наилучший способ включить If оператор в этот запрос, чтобы он обновлял только пустые ячейки в столбце B, а не полный столбец.

 function fillFormulae(){
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheets = ss.getSheetByName("Sheet1"); 
  var lastUsedRow = sheets.getLastRow();
  var arrayOfFormulae = new Array(lastUsedRow - 2);       

  for (j=0; j < lastUsedRow - 2; j    ){
    arrayOfFormulae[j] = [Utilities.formatDate(new Date(), "PST", "yyyy-MM-dd HH:mm:ss")];
  }

  sheets.getRange(3, 2, (lastUsedRow - 2), 1).setValues(arrayOfFormulae);  
}
 

Спасибо!

Шон

Ответ №1:

Вместо того чтобы использовать массив, я бы делал это по одной ячейке за раз.

 function fillFormulae(){
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheets = ss.getSheetByName("Sheet1"); 
  var lastUsedRow = sheets.getLastRow();

  for (j=0; j < lastUsedRow - 2; j    ){
    var cell = sheets.getRange(3 j, 2);
    if (cell.getValue() == '') {
      cell.setValue(Utilities.formatDate(new Date(), "PST", "yyyy-MM-dd HH:mm:ss"));
    }
  }
}
 

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

1. Это сделало свое дело! Хорошая идея по удалению массива. Спасибо, разработчик 🙂