简体   繁体   English

如何循环此 Google Apps 脚本函数?

[英]How do I loop this Google Apps Script function?

I tried to create a macro on Google sheets, which I did and it works perfectly, but I don't know how to get this function to loop.我试图在 Google 工作表上创建一个宏,我做到了,并且效果很好,但我不知道如何让这个函数循环。

function ba() {
  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getRange('E6').activate();
  spreadsheet.getRange('D8').moveTo(spreadsheet.getActiveRange());
  spreadsheet.getRange('F6').activate();
  spreadsheet.getRange('D10').moveTo(spreadsheet.getActiveRange());
  spreadsheet.getRange('G6').activate();
  spreadsheet.getRange('D12').moveTo(spreadsheet.getActiveRange());
  spreadsheet.getRange('D6:G6').activate();
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Sheet9'), true);
  spreadsheet.getRange('D6').activate();
  spreadsheet.getRange('Sheet8!D6:G6').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);
  spreadsheet.getActiveSheet().insertRowsBefore(spreadsheet.getActiveRange().getRow(), 1);
  spreadsheet.getActiveRange().offset(0, 0, 1, spreadsheet.getActiveRange().getNumColumns()).activate();
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Sheet8'), true);
  spreadsheet.getRange('D6:G14').activate();
  spreadsheet.setCurrentCell(spreadsheet.getRange('D14'));
  spreadsheet.getActiveSheet().deleteRows(spreadsheet.getActiveRange().getRow(), spreadsheet.getActiveRange().getNumRows());
};

Note: I tried to add the following snipet bellow the function, but it doesn't work.注意:我尝试在函数下方添加以下代码段,但它不起作用。

for (var i = 0; i < 10; i++) {
    Logger.log(i);
}

I actually managed to make this work.我实际上设法完成了这项工作。 (Thank you @Calculuswhiz for the hint and everybody else for trying to help) (感谢@Calculuswhiz 的提示和其他试图提供帮助的人)

I added the following snippet at the end of the function:我在函数末尾添加了以下代码段:

    for (var i = 0; i < 10; i++) {
        Logger.log(i);
    }

I replaced Logger.log(i);我替换了Logger.log(i); With what I want to be repeated.用我想重复的话。 Below is the final resualt下面是最终结果


    function ba() {
      var spreadsheet = SpreadsheetApp.getActive();
      spreadsheet.getRange('E6').activate();
      spreadsheet.getRange('D8').moveTo(spreadsheet.getActiveRange());
      spreadsheet.getRange('F6').activate();
      spreadsheet.getRange('D10').moveTo(spreadsheet.getActiveRange());
      spreadsheet.getRange('G6').activate();
      spreadsheet.getRange('D12').moveTo(spreadsheet.getActiveRange());
      spreadsheet.getRange('D6:G6').activate();
      spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Sheet9'), true);
      spreadsheet.getRange('D6').activate();
      spreadsheet.getRange('Sheet8!D6:G6').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);
      spreadsheet.getActiveSheet().insertRowsBefore(spreadsheet.getActiveRange().getRow(), 1);
      spreadsheet.getActiveRange().offset(0, 0, 1, spreadsheet.getActiveRange().getNumColumns()).activate();
      spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Sheet8'), true);
      spreadsheet.getRange('D6:G14').activate();
      spreadsheet.setCurrentCell(spreadsheet.getRange('D14'));
      spreadsheet.getActiveSheet().deleteRows(spreadsheet.getActiveRange().getRow(), spreadsheet.getActiveRange().getNumRows());
      
      for (var i = 0; i < 400; i++) {
      spreadsheet.getRange('E6').activate();
      spreadsheet.getRange('D8').moveTo(spreadsheet.getActiveRange());
      spreadsheet.getRange('F6').activate();
      spreadsheet.getRange('D10').moveTo(spreadsheet.getActiveRange());
      spreadsheet.getRange('G6').activate();
      spreadsheet.getRange('D12').moveTo(spreadsheet.getActiveRange());
      spreadsheet.getRange('D6:G6').activate();
      spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Sheet9'), true);
      spreadsheet.getRange('D6').activate();
      spreadsheet.getRange('Sheet8!D6:G6').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_NORMAL, false);
      spreadsheet.getActiveSheet().insertRowsBefore(spreadsheet.getActiveRange().getRow(), 1);
      spreadsheet.getActiveRange().offset(0, 0, 1, spreadsheet.getActiveRange().getNumColumns()).activate();
      spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Sheet8'), true);
      spreadsheet.getRange('D6:G14').activate();
      spreadsheet.setCurrentCell(spreadsheet.getRange('D14'));
      spreadsheet.getActiveSheet().deleteRows(spreadsheet.getActiveRange().getRow(), spreadsheet.getActiveRange().getNumRows());
    }
    };

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM