【发布时间】:2023-01-15 02:29:01
【问题描述】:
当在某些工作表 (Sheet12) 中添加一行时我遇到错误,然后将触发函数将工作表 ("CustomerDatabase") 移动到新工作表 ("Final")。
这是谷歌脚本:
function onEdit(e) {
var range = e.range;
var spreadSheet = e.source;
var sheetName = spreadSheet.getActiveSheet().getName();
var column = range.getColumn();
var row = range.getRow();
if (sheetName == 'Sheet12' && column == 1)
var prevNumRows = sheetName.getLastRow();
if (row > prevNumRows) {
var sourceSheet = SpreadsheetApp.getActive().getSheetByName("CustomerDatabase");
var sourceRange = sourceSheet.getRange("B:J");
var sourceValues = sourceRange.getValues();
var destinationSheet = SpreadsheetApp.getActive().getSheetByName("Final");
var destinationRange = destinationSheet.getRange("A:I");
destinationRange.setValues(sourceValues);
}
}
我是 google script 的新手,不确定是什么导致脚本出错。如果有人可以帮助解决此错误,我将不胜感激。
【问题讨论】:
-
我必须为我糟糕的英语水平道歉。不幸的是,来自
I'm encountering error when a row is being added in certain sheet(Sheet12) then function will be triggered to move a sheet("CustomerDatabase") to new sheet("Final").,我无法理解您当前的问题和您的目标。我可以问一下他们的详细情况吗? -
顺便说一下,在您的脚本中,
sheetName是一个字符串值。这样,var prevNumRows = sheetName.getLastRow();就会出错,因为getLastRow()是Class Sheet的方法。请注意这一点。而且,如果您想将prevNumRows用作“Sheet12”的getLastRow(),我担心row > prevNumRows可能总是false。如果我误解了您的脚本,我为此深表歉意。所以,我想正确理解你的预期结果。
标签: google-apps-script google-sheets