我有一个电子表格,它将单元格A2从1更改为12,然后将同一工作表上的3个单独的范围复制到另一工作表中的3个单独的范围。因此共有36个复制和过去值任务。我刚刚录制了一个Macro,但是它非常慢,所以我可以使用循环功能来加快它的速度。
还有一点是,我将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);
};