我有一个包含20列的电子表格。 当我尝试删除第3列到第12列时,我收到错误:
参考文献中的列..
我使用以下代码:
// Setup sheet
var ss = SpreadsheetApp.getActive()
var importSheet = ss.getSheets()[0];
var importSheetLastRow = importSheet.getLastRow();
var workingSheet = ss.getSheets()[1];
var workingSheetLastRow = workingSheet.getLastRow();
var chaufSheet = ss.getSheets()[2];
var chaufSheetLastRow = chaufSheet.getLastRow();
// Copy data to export range
var copyData = importSheet.getRange(20, 1, importSheetLastRow, 20);
copyData.copyTo(workingSheet.getRange(1,1));
// Delete unneeded data
workingSheet.deleteColumns(3, 10);
workingSheet.deleteColumns(4, 4);
奇怪的是:每次第一次运行脚本时,都会出错。当我重新运行脚本时,它工作正常..我也尝试使用try {}
和catch(e){}
,但这也没有用。
答案 0 :(得分:0)
我认为问题出在本部分
// Copy data to export range
var copyData = importSheet.getRange(20, 1, importSheetLastRow, 20);
copyData.copyTo(workingSheet.getRange(1,1));
此处您要存储的尺寸范围为[importSheetLastRow * 20]
,这意味着它将引用从(20,1)
开始并将扩展为[importSheetLastRow * 20]
但是当你将它复制到workingSheet
时,你只给出1个单元格范围,即(1,1)
最右上角的单元格。
存在差异。两个范围都应该具有相同的尺寸
我认为这会起作用
// Copy data to export range
var copyData = importSheet.getRange(20, 1, importSheetLastRow, 20);
copyData.copyTo(workingSheet.getRange(1, 1, importSheetLastRow, 20));
您的错误Column out of reference
可能会出现,因为该单元格从未填充/膨胀。首先尝试这个,如果同样的错误继续发生,那么我们可以进一步调试。
如果您有任何进一步的错误,请提供更多信息,例如哪个行错误等等