如何选择单列离散单元格区域并使用setValues设置值?
问题原因与解决方法
错误原因
你用shtdb.getRangeList()获取的是RangeList对象,这个对象并没有setValues()方法,只有单个的Range对象(比如shtdb.getRange()返回的结果)才支持setValues(),这就是报错的核心原因。
解决方法
要给C3、C4、C5、C6、C9这些离散单元格设置对应的值,你可以遍历RangeList中的每个Range,逐个赋值:
var values = [ph, sd, sg, qz, str]; // 改为一维数组,每个元素对应一个目标单元格 var rangeList = shtdb.getRangeList(['C3', 'C4', 'C5', 'C6', 'C9']); // 直接列出每个目标单元格 if (id === "id001") { // 注意用===做相等判断,不是赋值= // 遍历每个Range,对应设置值 rangeList.getRanges().forEach((range, index) => { range.setValue(values[index]); }); return; }
补充说明
- 把
values改成一维数组,因为每个单元格只需要单个值,不需要二维数组结构; - 原代码里的
if(id="id001")是赋值操作,会导致逻辑错误,必须改成===进行相等判断; - 如果想追求更高效率,也可以构建对应单元格的二维数组映射,但遍历RangeList的方式更直观易懂。
内容的提问来源于stack exchange,提问作者Rehandhika Arya pratama
相关产品推荐
相关产品推荐

