Arrays 您如何解决“问题”;参数(编号[])不';t与SpreadsheetApp.Range.setValues的方法签名不匹配“;错误
我得到这个错误: “参数(编号[])与SpreadsheetApp.Range.setValues的方法签名不匹配。” 在我的谷歌应用程序脚本中,当我尝试将一组值写入一张工作表时 下面是代码的缩短(简化)版本。实际代码通过大约10000条记录运行 调用Arrays 您如何解决“问题”;参数(编号[])不';t与SpreadsheetApp.Range.setValues的方法签名不匹配“;错误,arrays,google-apps-script,google-sheets,Arrays,Google Apps Script,Google Sheets,我得到这个错误: “参数(编号[])与SpreadsheetApp.Range.setValues的方法签名不匹配。” 在我的谷歌应用程序脚本中,当我尝试将一组值写入一张工作表时 下面是代码的缩短(简化)版本。实际代码通过大约10000条记录运行 调用setValues时,在最后一行生成错误 我知道我错过了一些非常简单的东西 function writeArrayToSheet() { var ss = SpreadsheetApp.openById("Spreadsheet_ID");
setValues
时,在最后一行生成错误
我知道我错过了一些非常简单的东西
function writeArrayToSheet() {
var ss = SpreadsheetApp.openById("Spreadsheet_ID");
var orderSheet = ss.getSheetByName("Sheet_Name");
var vTable = orderSheet.getRange(1,6,5,11).getValues(); //Raw data
var vWriteTable = []; //Data that will be written to sheet
var updateTime = new Date();
var i = 0;
var vSeconds = 0;
while (i < 5 && vTable[i][0] != "") {
//Logic section that calculated the number of seconds between
if (vSeconds == 0) {
vWriteTable.push("");
} else {
if (vTable[i][6] < certain logic) {
vWriteTable.push("Yes");
} else {
vWriteTable.push("");
}
}
i = i + 1;
} // End while
orderSheet.getRange(1,20,vWriteTable.length,1).setValues(vWriteTable);
} //End Function
函数writearraytoseet(){
var ss=电子表格应用程序openById(“电子表格ID”);
var orderSheet=ss.getSheetByName(“工作表名称”);
var vTable=orderSheet.getRange(1,6,5,11).getValues();//原始数据
var vWriteTable=[];//将写入工作表的数据
var updateTime=新日期();
var i=0;
var vSeconds=0;
而(i<5&&vTable[i][0]!=“”){
//逻辑部分,用于计算
如果(vSeconds==0){
vWriteTable.push(“”);
}否则{
if(vTable[i][6]<特定逻辑){
vWriteTable.push(“是”);
}否则{
vWriteTable.push(“”);
}
}
i=i+1;
}//结束时
orderSheet.getRange(1,20,vWriteTable.length,1).setValues(vWriteTable);
}//结束函数
这就是调试时vWriteTable
的外观:
接受(并返回):
- 1类型的参数:
a二维对象数组Object[][]
[[1],[3]]
[[1,2]]
[[1,2],[3,4]
- 1类型的参数:
a二维对象数组Object[][]
[[1],[3]]
[[1,2]]
[[1,2],[3,4]
是否有人可以编辑此答案以提供实际解决方案?我不知道该如何处理该代码段。@user8118328该代码段的意思是,每次推送时,它都必须是一个2D数组。因此,如果要构建的阵列是1D的,则需要添加额外的方括号以使其成为2D。当应用于原始问题时,这意味着您将替换以下代码行,如下所示:vWriteTable.push(“”;-->vWriteTable.push([“”]);和vWriteTable.push(“是”);-->vWriteTable.push([“是]);对于动态值=>var yourVariable=;=>vWriteTable.push([yourVariable]);(而不仅仅是vWriteTable.push(yourVariable);)有人可以编辑这个答案来提供实际的解决方案吗?我不知道该如何处理该代码段。@user8118328该代码段的意思是,每次推送时,它都必须是一个2D数组。因此,如果要构建的阵列是1D的,则需要添加额外的方括号以使其成为2D。当应用于原始问题时,这意味着您将替换以下代码行,如下所示:vWriteTable.push(“”;-->vWriteTable.push([“”]);和vWriteTable.push(“是”);-->vWriteTable.push([“是]);对于动态值=>var yourVariable=;=>vWriteTable.push([yourVariable]);(而不仅仅是vWriteTable.push(您的变量);)
vWriteTable.push([""]);