javascript - 需要回答“参数 (number[]) 与 SpreadsheetApp.Range.setValues 的方法签名不匹配”错误
问题描述
请帮助我了解发生了什么。我有代码
function splitWords() {
var list = SpreadsheetApp.getActiveSheet();
var list_Key = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Keys');
if (list.getName() !== list_Key.getName()) {
SpreadsheetApp.getUi().alert('Для работы функции перейдите на страницу Keys');
} else {
var array = list.getRange('C2:C').getValues();
var t_array = array.filter(String).lenght;
SpreadsheetApp.getUi().alert(array);
var array1 = array.reduce(function (s, c) {
var key = c[0];
var keys = key.split(" ");
for (var i in keys) {
if (!s.includes(keys[i])) {
s.push(keys[i])
}
}
return s;
}, []);
SpreadsheetApp.getUi().alert(array1);
SpreadsheetApp.getActive().getActiveSheet().getRange(2,8,array1.length,array1[0].length).setValues(array1);
}
}
当代码来到setValues()
我有错误。参数 (number[]) 与 SpreadsheetApp.Range.setValues 的方法签名不匹配
解决方案
在您的脚本中,array1
是一维数组。但它需要是二维数组serValues
。我认为这是您的问题的原因。当您要将 的值放入array1
从“H2”到行方向的范围内时,需要将 的每个元素包含array1
在一个数组中。那么下面的修改呢?
从:
s.push(keys[i])
至:
s.push([keys[i]]);
笔记:
你想把的值放到
array1
从“H2”到列方向的范围内,下面的修改怎么样?从:
SpreadsheetApp.getActive().getActiveSheet().getRange(2,8,array1.length,array1[0].length).setValues(array1);
至:
array1 = [array1]; SpreadsheetApp.getActive().getActiveSheet().getRange(2,8,array1.length,array1[0].length).setValues(array1);
参考:
推荐阅读
- python - 对每个递归步骤使用多处理
- aem - 如何获取页面的第一个激活日期?
- postgresql - 如何通过端口 5432 连接到容器中的 Postgres 数据库
- python - 来自 DatetimeIndex 对象的日期列表
- c# - 显示数据列表中的数据
- graphql - GraphQL 中的社交身份验证
- npm - ¿ 量角器茉莉花 2 失败鲸鱼怎么了?
- go - gorm:加入可变的“where”条件
- c++ - 转换运算符模板是否有意
T&&() 是转换为右值吗? - c# - 如何将 SqlDataSource 查询的结果(在 aspx 文件中指定)与 ButtonField 一起使用?