После возни с range.autoFillToNeighbor()
и неудачей (см. Комментарии выше) я все еще с подозрением относился к этому методу.
Когда я использовал этот метод range.autoFill()
, все работало нормально. См. Код ниже.
// start of PODdateformatting
//var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.getRange('G2').activate().setFormula('=DATE(LEFT(D2,4),mid(D2,5,2),right(D2,2))');
var sourceRange = spreadsheet.getRange("G2:G2");
var destination = spreadsheet.getRange("G2:G369");
sourceRange.autoFill(destination,SpreadsheetApp.AutoFillSeries.DEFAULT_SERIES);
//start of Daystodeliverformula
var spreadsheet = SpreadsheetApp.getActive();
var range = spreadsheet.getRange('H2').activate().setFormula('=NETWORKDAYS(E2,G2,Instructions!$B$15:$B$40)-1');
var sourceRange = spreadsheet.getRange("H2:H2");
var destination = spreadsheet.getRange("H2:H369");
sourceRange.autoFill(destination,SpreadsheetApp.AutoFillSeries.DEFAULT_SERIES);
Оглядываясь назад, я теперь считаю, что range.autoFillToNeighbor()
никогда не подходил для вашего случая использования!
range.autoFillToNeighbor()
предполагает построение формул автозаполнения на основе данных, содержащихся в соседних столбцах . Он пытается сделать это разумно, но соседние столбцы не содержат ничего полезного! Удивительно, что это когда-либо работало ... возможно иногда по умолчанию range.autoFill()
!
range.autoFill()
, с другой стороны, просто дублирует формулу (данные) выше или ниже (НЕ обращаясь за помощью к соседним ячейкам).
Вы можете скопировать и вставить их в соответствующие функции в функции TheWholeShebang()
, и все должно работать.
Примечание. Я предполагаю фиксированный диапазон 369
в соответствии с вашими данными, но вы можете рассчитать его на основе фактического размера, если хотите, в случае, если количество строк не изменилось.