我正在尝试将新值与Google表格中的现有值组合在一起。因此,当用户输入代码输入时,它将找到代码输入行并将用户刚刚填充的formObject.things值添加到现有的thingsList值(与codeInput相同的行(。我尝试了此代码,但它在Google表格中返回空白。
您的回复将不胜感激。
这是我的代码:
function update1(formObject) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var ws = ss.getSheetByName("Sheet1");
var data = ws.getRange(5, 1, ws.getLastRow()-1, 1).getValues();
var codeList = data.map(function(r){return r[0].toString(); });
var thingsList = data.map(function(r){return r[8]; });
var position = codeList.indexOf(formObject.codeInput);
var array = [thingsList[position], formObject.things]
if (position > -1) {
position += 5;
ws.getRange(position,9).setValue(array);
}
}
关于
var array = [thingsList[position], formObject.things]
和
ws.getRange(position,9).setValue(array);
array
的类型是Array
setValue
不允许Array
对象作为参数。它接受、string
、number
、Date
和Boolean
而不是setValue
- 您可以传递一个谷歌表格数组(即
={1,2}
( 通过使用setFormula
- 您可以使用
setValues
将双向Array
传递给 Google 表格 - 您可以使用
appendRow
传递数组(一维Array
(
关于
var data = ws.getRange(5, 1, ws.getLastRow()-1, 1).getValues();
和
var thingsList = data.map(function(r){return r[8]; });
data
是并且Array
可能有多个行,但它只有一列,因此,r[8]
返回null
导致thinkslist
是null
值数组。
到目前为止,该问题没有包含足够的细节来了解可能需要的修复程序,但这里有两种可能性:
var data = ws.getRange(5, 1, ws.getLastRow()-1, 9).getValues();
或
var data = ws.getRange(5, 1, ws.getLastRow()-1, ws.getLastColumn()).getValues();