.getLastColumn()
返回最后一列的整数的方法您的工作表目前有。如果你的工作表有10列,.getLastColumn()
将返回10.
你有几个潜在的选择,你要求。第一种,如下所示,是您希望在工作表右端追加新的范围。定义变量并以最基本的形式调用它们,而不是在其他方法中定义它们也是一个明智的想法。这种做法将减少错误并澄清您的代码。
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sourceRange = ss1.getRange(1, 1, 300, 22);
var sourceValues = sourceRange.getValues();
var ss3 = spreadsheet.getSheetByName("ss3");
var lastColumn = ss3.getLastColumn();
var archiveRange = ss3.getRange(1, lastColumn + 1, 300, 22); //Start at first row, the next column after the last one, for 300 rows and 22 columns.
archiveRange.setValues(sourceValues);
以上代码将在您的工作表右侧添加22列和300行。无论您运行多少次,您的工作表都会保留300行,但是您的专栏将会进一步延伸。
或者,如果你正在寻找使用相同的22列在您的片材的底部追加300行(延伸长度,NOT宽度),使用以下代码:
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sourceRange = ss1.getRange(1, 1, 300, 22);
var sourceValues = sourceRange.getValues();
var ss3 = spreadsheet.getSheetByName("ss3");
var lastColumn = ss3.getLastColumn();
var lastRow = ss3.getLastRow();
var archiveRange = ss3.getRange(lastRow + 1, 1, 300, 22); //Start at the next row after the last, the first column, for 300 rows and 22 columns.
archiveRange.setValues(sourceValues);
这将保持宽度为22行,并将长度延长300行。
如果您正在寻找这样,只存在1归档完全覆盖以前的数据,使用:
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sourceRange = ss1.getRange(1, 1, 300, 22);
var sourceValues = sourceRange.getValues();
var ss3 = spreadsheet.getSheetByName("ss3");
var archiveRange = ss3.getRange(1, 1, 300, 22);
archiveRange.setValues(sourceValues);
正如您可以猜到,它可以使这个范围300行,22列。您的数据将被覆盖,而不会添加长度或宽度。
您可能需要测试可能尚不存在的GAS可能有效且准确的.getRange()
。如果您在添加行/列时看到错误,那么可以使用类似于.insertColumnsAfter()
和.insertRowsAfter()
之前的方法在之前将值写入这些新范围。关于表单方法的文档可以在here找到。
非常感谢您的信息!我读的最后一个参数是“列号”而不是“列数”。这固定了它。 –