如何使用循环功能简化此代码

时间:2019-10-25 08:27:52

标签: javascript loops google-sheets copy copy-paste

我有一个电子表格,它将单元格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);
};

0 个答案:

没有答案