Google apps script 谷歌表单';用于根据输入文本更改单元格背景颜色的宏
我想在GoogleSheet中为下面的例子制作一个宏 在工作表列(如J列)中,允许的文本输入为“a”、“B”和“C” 一旦我将Google apps script 谷歌表单';用于根据输入文本更改单元格背景颜色的宏,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我想在GoogleSheet中为下面的例子制作一个宏 在工作表列(如J列)中,允许的文本输入为“a”、“B”和“C” 一旦我将A、B或C(在J第列中)放入单元格,单元格背景颜色应分别变为“绿色”、“黄色”和“红色” 我该怎么做 我对宏了解不多,我只是接到了这样的任务。 我能得到一些帮助吗? 只有当“A”、“B”和“C”被输入到“J”列时,才需要更改编辑单元格的背景色 标题和标签中的“谷歌工作表宏”是谷歌应用程序脚本 如果我的理解是正确的,那么这两个示例脚本如何?请把这看作是几个答案中的一个 示
A
、B
或C
(在J
第列中)放入单元格,单元格背景颜色应分别变为“绿色”、“黄色”和“红色”
我该怎么做
我对宏了解不多,我只是接到了这样的任务。
我能得到一些帮助吗?- 只有当“A”、“B”和“C”被输入到“J”列时,才需要更改编辑单元格的背景色
- 标题和标签中的“谷歌工作表宏”是谷歌应用程序脚本
- 如果输入值不是“A”、“B”和“C”,则删除该值
- 在此示例脚本中,该脚本将针对电子表格中的所有图纸运行。
- 如果要运行特定工作表的脚本,请告诉我
- 此示例脚本假设一个值放在一个单元格中。
- 如果您想在“J”列的几行中输入几个值,请告诉我
- 这样,只能将“A”、“B”和“C”的值放入“J”列
- 由此,当在列“J”的单元中放入值“a”、“B”和“C”时,背景色改变
myFunction()
。在此脚本中,条件只运行一次脚本
function myFunction() {
var rangeA1Notation = "J:J"; // Column "J"
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getRange(rangeA1Notation);
// Set Data Validation
var rule = SpreadsheetApp.newDataValidation().withCriteria(SpreadsheetApp.DataValidationCriteria.VALUE_IN_LIST, [["A", "B", "C"], false]).setAllowInvalid(false).build();
range.setDataValidation(rule);
// Set Conditional Format Rule
var rules = sheet.getConditionalFormatRules();
rules.push(SpreadsheetApp.newConditionalFormatRule().whenTextEqualTo("A").setBackground("green").setRanges([range]).build());
rules.push(SpreadsheetApp.newConditionalFormatRule().whenTextEqualTo("B").setBackground("yellow").setRanges([range]).build());
rules.push(SpreadsheetApp.newConditionalFormatRule().whenTextEqualTo("C").setBackground("red").setRanges([range]).build());
sheet.setConditionalFormatRules(rules);
}
参考资料:
如果这些方法不是你想要的,我道歉。嘿,谢谢你的回答。虽然我似乎无法让它发挥作用。我已将
OnEdit
函数放入脚本编辑器并保存。现在如何将其应用于J列?@RC0993谢谢您的回复。给您带来不便,我深表歉意。使用示例脚本1时,将以下脚本复制并粘贴到脚本编辑器并保存后,请将值放入“J”列。这样,脚本将自动运行。你可以在上看到官方文件。顺便说一下,请使用电子表格的容器绑定脚本。@RC0993作为测试样本,这个流程如何?1.创建新的电子表格。2.打开脚本编辑器,复制并粘贴示例脚本1并保存它。3.返回工作表,将“A”放在单元格“J1”上。通过这种方式,单元格的背景颜色变为“绿色”。我意识到示例脚本可以工作,但不能在该列中的合并行上工作。嘿,感谢它可以工作:)合并不是问题,实际上我必须删除已经存在的值“A”,然后必须重新放置它
function myFunction() {
var rangeA1Notation = "J:J"; // Column "J"
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getRange(rangeA1Notation);
// Set Data Validation
var rule = SpreadsheetApp.newDataValidation().withCriteria(SpreadsheetApp.DataValidationCriteria.VALUE_IN_LIST, [["A", "B", "C"], false]).setAllowInvalid(false).build();
range.setDataValidation(rule);
// Set Conditional Format Rule
var rules = sheet.getConditionalFormatRules();
rules.push(SpreadsheetApp.newConditionalFormatRule().whenTextEqualTo("A").setBackground("green").setRanges([range]).build());
rules.push(SpreadsheetApp.newConditionalFormatRule().whenTextEqualTo("B").setBackground("yellow").setRanges([range]).build());
rules.push(SpreadsheetApp.newConditionalFormatRule().whenTextEqualTo("C").setBackground("red").setRanges([range]).build());
sheet.setConditionalFormatRules(rules);
}