注意:这是备份的后续问题Google Apps脚本未运行
以下代码正在运行一些问题,我将它们缩小到1。我遇到了错误
不正确的范围宽度为1,但应为18(第41行,"更新备份数据")
这是有问题的线
archiveSheet.getRange(archiveSheet.getLastRow() + 1, 1, data.length, rng.getWidth()+1).setValues(data);
以下链接是纸的副本,其中包含虚拟信息。https://docs.google.com/spreadsheets/d/1dr8xpnlrdza17kqqnfbx3hxwkp5w4vrrj_lj5upnmlu/edit?usp = sharing
以下是代码
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=inputSheet.getRange('A2').getValue();
var rng=inputSheet.getRange('E7:U37');
var dataA=rng.getValues();
var data=[];
for(var j=0;j<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']]);
}
}
}
该脚本旨在将信息从选择E7-U37复制并粘贴到存档表中,并将从单元A2收集的日期放入存档表的第一列,如果没有信息,则输入"无数据"。这是存档测试表。 https://docs.google.com/spreadsheets/d/1upa_4crmv2wkqe1uljvij-1z1ndndmws3ae6tdowe88/edit?usp = sharing
从您的脚本中,我认为,因为 data
的每个元素的长度为2维数组与 rng.getWidth()+1
不相同,因此发生错误。那么以下修改怎么样?
来自:
archiveSheet.getRange(archiveSheet.getLastRow() + 1, 1, data.length, rng.getWidth()+1).setValues(data);
to:
archiveSheet.getRange(archiveSheet.getLastRow() + 1, 1, data.length, data[0].length).setValues(data);
注意:
顺便说一句,您将在以下部分做什么?
var data = [];
for(var j=0;j<dataA.length;j++) {
if(dataA[j][0] && dataA[j][1]) {
data.push([dataA[j].splice(0,0,date)]);
}
}
您在其他部分使用data
,但是在这里,data
似乎变为[[[]], [[]], [[]], ...
。如果这是您想要的结果,我认为这没问题。我也认为这部分可能与错误有关。
如果我误解了您的问题,对不起。