У меня есть электронная таблица, которая изменяет ячейку A2 с 1 на 12, а затем копирует 3 отдельных диапазона на одном листе в 3 отдельных диапазона на другом листе. итого 36 заданий на копирование и прошлые значения. Я только что записал макрос, но он очень медленный, поэтому я могу использовать функцию цикла для ускорения всего этого.
Еще один момент заключается в том, что я сохраняю исходное значение A2 в ячейке, а затем копирую его обратно, чтобыэлектронная таблица возвращается в исходное положение в конце задания.
Как указано выше
function GraphDataCopy() {
var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.getRange('I8').activate();
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Rolling Forecast SUMMARY'), true);
spreadsheet.getRange('A2').activate();
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Graph Data Sheet'), true);
spreadsheet.getRange('B2').activate();
spreadsheet.getRange('\'Rolling Forecast SUMMARY\'!A2').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Rolling Forecast SUMMARY'), true);
spreadsheet.getCurrentCell().setValue('1');
spreadsheet.getRange('B13:D13').activate();
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Graph Data Sheet'), true);
spreadsheet.getRange('B6').activate();
spreadsheet.getRange('\'Rolling Forecast SUMMARY\'!B13:D13').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);
И так до
spreadsheet.getRange('B2').activate();
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Rolling Forecast SUMMARY'), true);
spreadsheet.getRange('A2').activate();
spreadsheet.getRange('\'Graph Data Sheet\'!B2').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);
};