google-apps-script - 如何使用下拉菜单更改范围的单元格内容?
问题描述
所以我在表格上有一个文件,文件中有一部分单元格被格式化,所以当你输入“0”时,它们是空圆圈,当你输入任何其他数字时(我只是用“1”来制作很容易),圆圈被填满。我知道我可能可以使用实际工作表中的公式,但我希望选择单独编辑单元格。我真的只需要下拉菜单一次填充它们或清除它们以节省时间。下拉菜单有“清除”和“填充”选项。
我在分组单元格 AG97:AN97 中有下拉菜单,我希望能够更改 W100:W103 中的单元格(范围更多,但一次一步。)
我尝试使用以前的问题来帮助我,但我似乎无法掌握代码。
function addValidation() {
var range = SpreadsheetApp.openById('(SHEETID)');
var sheet = ss.getSheets()[0];
var values = range.getValues();
var data = sheet.getDataRange().getValues();
var rule = SpreadsheetApp.newDataValidation().requireValueInList(["Clear", "Fill"]).build();
for(var i=0; i<data.length; i++) {
if(data[i][22] == "Clear") {
sheet.getRange(i+100, 7).clear().setDataValidation(rule);
}
}
}
我只是为了显示代码而替换了工作表的想法。在尝试填充之前,我尝试让 clear 功能起作用,但没有运气。我不断收到“错误值(第 2 行,文件“代码”)”
解决方案
“错误值(第 2 行,文件“代码”)”表示您错误地插入了 SpreadsheetID。
如果您的电子表格 URL 类似于
https://docs.google.com/spreadsheets/d/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/edit#gid=0
,则 ID 是用 X 指定的部分 - 通常长度为 44 个字符。
openById()
Yuo 需要用引号(或双引号)将其传递给方法,但不带括号:
SpreadsheetApp.openById('XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX');
此外,可能您想将其分配给一个名为ss
而不是的变量range
,因为您的下一行是var sheet = ss.getSheets()[0];
.
推荐阅读
- java - Java dom document.getElementsByTagName("") 返回 null?
- node.js - Heroku 节点应用程序错误:写入 EPROTO 140592586876736:错误:14094410:SSL 例程:ssl3_read_bytes:sslv3 警报握手失败
- java - 撤消所有文本时如何禁用按钮?
- model-view-controller - Adonis js-加载常用页眉页脚、内部css和内部js查看
- python-3.x - 熊猫不根据条件填充列
- compilation - ELINA 静态分析仪
- r - h2o.predict() 在新测试集上使用哪个阈值?
- lucene - 在 Azure 搜索中使用 StartsWith 进行搜索
- node.js - 节点红色。是否可以仅使用复制的节点文件夹离线安装节点
- c# - 用于扁平化属性序列化的属性