我有一张工作表使用了一些相同的代码...在最近几天试图处理我当前的项目,过去工作的东西不再有效,我收到各种各样的错误不同的东西。
目前,在我想出这个之前,我无法继续前进。
var ss = SpreadsheetApp.getActiveSpreadsheet();
var clientList = ss.getSheetByName("ClientList");
var tracker = ss.getSheetByName("Tracker");
var tr_activeRow = tracker.getActiveCell().getRow();
var tr_clientName = tracker.getRange(tr_activeRow,1);
var tr_birthDate = tracker.getRange(tr_activeRow,5);
function addNewName() {
if(tr_clientName.getValue() == "New" && tr_birthDate.getValue() != ""){
tracker.getRange(tr_activeRow, 2, 1, 4).copyValuesToRange(clientList, 1, 4, clientList.getLastRow()+1, 1);
}
}
尝试运行代码时,我得到了:
很抱歉,发生了服务器错误。请稍等一下再试一次。
我已经尝试了一些事情并且知道getLastRow()+1
这就是问题所在。我也试过了getLastRow()
& getLastRow()-1
查看代码是否运行且运行正常。当我使用正整数时,似乎只是一个问题......
我做错了什么?!?或者这是工作表/应用程序脚本的问题吗?
答案 0 :(得分:0)
copyValuesToRange()
的参数是:
copyValuesToRange(sheet,column,columnEnd,row,rowEnd)
您将行结束指定为第1行。
.copyValuesToRange(clientList, 1, 4, clientList.getLastRow()+1, 1);
rowEnd
应该是一个大于或等于row
参数(对于一行)的数字。
你只得到一排,
tracker.getRange(tr_activeRow, 2, 1, 4).copyVa . . . .
所以row
和rowEnd
应该相同。
var theLastRow = clientList.getLastRow()+1;
tracker.getRange(tr_activeRow, 2, 1, 4)
.copyValuesToRange(clientList, 1, 4, theLastRow, theLastRow);