Скрипт выполняет очистку данних в диапазоне ячеек, вставляет в этот диапазон формулу массива, копирует полученные значения и вставляет только значения в это диапазон. Макрос должен выполняется по условия определенного значения в ячейке.
Наброски кода:
function num() {
var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.getRange('F15:F34').activate();
spreadsheet.getActiveRangeList().clear({contentsOnly: true, skipFilteredRows: true});
spreadsheet.getRange('F15').activate();
spreadsheet.getCurrentCell().setFormula('=ArrayFormula(IF($G$5>=2,C15:C34,$J$17))');
spreadsheet.getRange('F15:F34').activate();
spreadsheet.getRange('F15:F34').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
spreadsheet.getRange('F15').activate();
};
function onEdit() {
var spreadsheet = SpreadsheetApp.getActive();
var sheet = spreadsheet.getSheetByName('Man');
var activeRange=sheet.getRange("G5").getValue();
if(activeRange == 2){
function num();
};
};
Но код работает не коректно: выполняется только очистка данных.