参考Google表格/文字列

时间:2018-01-27 09:17:03

标签: google-apps-script google-sheets

我有一个包含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){},但这也没有用。

1 个答案:

答案 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可能会出现,因为该单元格从未填充/膨胀。首先尝试这个,如果同样的错误继续发生,那么我们可以进一步调试。

如果您有任何进一步的错误,请提供更多信息,例如哪个行错误等等