Javascript 移动到Google脚本运行而不执行

Javascript 移动到Google脚本运行而不执行,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,几周前我问了这个问题,得到了很好的回答。在此基础上,我修改了一个代码,它开始工作了!基本上,代码查看工作表上的一列,并根据某列中的值移动该工作表中的特定行。根据建议,脚本自下而上运行。以下是我的工作内容: function move2Archive() { var columnNumberToWatch = 21; // column A = 1, B = 2, etc. var valueToWatch = "Yes"; //needs to have a Yes in the co

几周前我问了这个问题,得到了很好的回答。在此基础上,我修改了一个代码,它开始工作了!基本上,代码查看工作表上的一列,并根据某列中的值移动该工作表中的特定行。根据建议,脚本自下而上运行。以下是我的工作内容:

function move2Archive() {

  var columnNumberToWatch = 21; // column A = 1, B = 2, etc.
  var valueToWatch = "Yes"; //needs to have a Yes in the column for script to work
  var sheetNameToMoveTheRowTo = "4.Archive";

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("3.Customer Tab");
  var row = 1;
  var range = sheet.getRange(row,columnNumberToWatch,sheet.getLastRow(),1).getValues(); //get  Values of columnNumberToWatch
  var range2 = sheet.getRange("B:B").getValues()
  var len = range2.filter(String).length; 
  var targetSheet = ss.getSheetByName(sheetNameToMoveTheRowTo);

  //Browser.inputBox(len) //used this to debug and check whether the len variable is correct

 for (row=len; row> 0 ; row--){

 if (range[row-1][0] == valueToWatch) { //if the value in the column is the value to watch; index [0] method used to get value of the column of interest
      var targetRow = targetSheet.getRange("B:B").getValues().filter(String).length //ensure that it is being pasted on the last row (using Unique ID column)
      var targetRange = targetSheet.getRange(targetRow + 1, 1); //add 1 spaces to cater for the header row at the top

    //Browser.inputBox(row) //used to debug and check where the values will paste

    sheet.getRange(row, 1, 1, sheet.getLastColumn()).moveTo(targetRange);
    sheet.deleteRow(row);


  }
}
}
当我运行脚本时,它会无休止地运行,不会将任何内容移动到下一列。但是,当我运行“调试行”(即
Browser.inputBox
命令)时,它们表明脚本确实获得了正确的参数。例如,第二个
浏览器.inputBox(行)
显示循环,并输出一个带有行号的inputBox,其中的值为“Yes”。问题是,它只是没有执行超过这一点,我不明白为什么!我第一次使用它的时候它就开始工作了,在一张有20行的纸上试过之后,它就停了一半……啊

还有,只是想走运,有没有办法加快脚本的速度?如果能知道是否有一种更有效的方法来执行相同的流程,那就太好了


谢谢

这可能与在尝试删除行之前未完成的
moveTo
有关。您是否尝试过刷新

sheet.getRange(row, 1, 1, sheet.getLastColumn()).moveTo(targetRange);
SlreadsheetApp.flush();
sheet.deleteRow(row)

嘿感谢您的建议,但线路仍然没有移动:(