[英]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.