簡體   English   中英

備份Google Apps腳本未運行

[英]Backup Google apps script not running

我有以下我認為正在運行的腳本,但是當我剛剛測試時,出現了錯誤

TypeError:無法從未定義的第31行讀取屬性“ 0”。

我在下面加粗了。 但這是這條線。 if(dataA[j][0] && dataA[j][1]) 我在A2中有一個=today()來獲取腳本用於輸入存檔表的日期,因此不確定是否是問題所在,因為它在單元格中使用了Google表單格式“日期”。

 function dataBackup() 
{
 var inputSS = SpreadsheetApp.getActiveSpreadsheet();
var archiveSS = SpreadsheetApp.openById('1uPA_4CRmv2wkqe1uljViJ-
1z1NTNDmwS3aE6TDowe88');
var sheetNames = ['AM trip', 'PM trip', 'Pool / Beach', 'Night Dive'];
for (var i=0; i<sheetNames.length; i++) 
{
  var inputSheet = inputSS.getSheetByName(sheetNames[i]);
var archiveSheet = archiveSS.getSheetByName(sheetNames[i]);
var date=new Date(inputSheet.getRange('A2').getValue());     
var rng=inputSheet.getRange('E7:U37');
var dataA=rng.getValues();
var data=[];
for(var j=0;i<dataA.length;j++)
{
  **if(dataA[j][0] && dataA[j][1])**
  {
    data.push([dataA[j].splice(0,0,date)]);
  }
}
var dv=archiveSheet.getRange(archiveSheet.getLastRow(), 1).getValue();
date=(typeof(dv)!='undefined')?dv:'No Date Found';
if (data.length>0) 
{
  archiveSheet.insertRowsAfter(archiveSheet.getLastRow(), data.length);
  archiveSheet.getRange(archiveSheet.getLastRow() + 1, 1, data.length, rng.getWidth()+1).setValues(data);
} 
else 
{
  archiveSheet.insertRowsAfter(archiveSheet.getLastRow(), 1);
  archiveSheet.getRange(archiveSheet.getLastRow() + 1, 1, 1, 2).setValues([[date, 'No Data']]);
}
}
}

簡短答案

相關的for循環上有一個錯字。

for(var j=0;i<dataA.length;j++)

j代替i

延伸答案

關於= TODAY()是否引起錯誤,不是,但是值得注意的是TODAY()返回今天的日期。 通過使用getValue()獲取日期值,將日期對象傳遞給Google Apps腳本引擎,因此,

var date=new Date(inputSheet.getRange('A2').getValue());

嘗試

var date=inputSheet.getRange('A2').getValue(); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM