Google 表格脚本 - 如何在同一个电子表格中自动执行 "if checkbox == true, then copy row in another sheet"?

Google Sheets Script - How to automate "if checkbox == true, then copy row in another sheet" in the same spreadsheet?

大家好,

首先,电子表格被命名为Daily File Distribution

所以这里的问题是: 如果 'Daily!H2:H100' 中的复选框是 TRUE,则列 'Daily!A2:F100' 中的内容将被复制到 'Record' 最后一行。然后清除 'Daily!A2:F100' 中的内容(因为删除行会弄乱条件格式)。然后将复选框从 'Daily!G2:H2' 更改为 FALSE.

我从录制的宏中得到的(仅适用于Daily!A2:F2):

function UntitledMacro() {
  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getRange('A2:F2').activate();
  spreadsheet.setCurrentCell(spreadsheet.getRange('F2'));
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Record'), true);
  spreadsheet.getRange('A134').activate();
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Daily'), true);
  spreadsheet.getActiveRangeList().clear({contentsOnly: true, skipFilteredRows: true});
  spreadsheet.getRange('G2').activate();
  spreadsheet.getCurrentCell().setValue('FALSE');
  spreadsheet.getRange('H2').activate();
  spreadsheet.getCurrentCell().setValue('FALSE');
};

提前致谢!

function runOne() {
  var ss=SpreadsheetApp.getActive();
  var sh1=ss.getSheetByName('Daily');
  var sh2=ss.getSheetByName('Record');
  var rg1=sh1.getRange(2,1,99,6);
  var rg2=sh1.getRange(2,7,99,2);
  var vA1=rg1.getValues();
  var vA2=rg2.getValues();
  for(var i=0;i<vA1.length;i++) {
    if(vA2[i][1]) {
      sh2.appendRow(vA1[i])
      sh1.getRange(i+2,1,1,vA1[i].length).clear({contentsOnly: true, skipFilteredRows: true});
      vA2[i][0]=false;
      vA2[i][1]=false;
    }
  }
  rg2.setValues(vA2);
}