[英]How to avoid empty object error in a loop using Google Apps Script?
[英]Google Apps Script - How to break loop to prevent error message
如果滿足某些條件(G列不為空白,並且A列中的日期等於或大於3個月),我將使用以下腳本將行從一個工作表存檔到另一個工作表。 它將匹配的行追加到新工作表上,並從原始工作表中刪除該行。
function Archiving() {
var masterSS = SpreadsheetApp.getActiveSpreadsheet() || SpreadsheetApp.openById('sheetID');
var responseSheet = masterSS.getSheetByName('responseSheetname');
var archiveSheet = masterSS.getSheetByName('archiveSheetName');
var responseData = responseSheet.getRange(2,1, responseSheet.getLastRow()-1, responseSheet.getLastColumn()).getValues();
var lastRow = responseSheet.getLastRow();
var today = new Date();
for (var i = responseData.length-1; i < responseData.length; i--){
var row = responseData[i];
if (row[0] == "") {break;}
if (row[6] != "") {
var date = row[0];
if (date != "" && ((today.getTime() - date.getTime()) > 7776000000)) {
Logger.log(date)
archiveSheet.appendRow(responseData[i]);
responseSheet.deleteRow(i+2);
}
}
}
}
它正在工作,但是,在完成歸檔后,它會拋出以下錯誤:
TypeError:無法從未定義中讀取屬性“ 0”。 (第42行,文件“存檔腳本”)
我認為這是因為它仍在嘗試遍歷並且什么也沒找到,我曾希望中斷可以解決,但是沒有。
任何人都可以提出修復建議?
如果有人感興趣,解決方法就是更改。
if (row[0] == "") {break;}
至
if (!row || row[0] == "") {break;}
感謝LGSon。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.