google-apps-script - 我正在使用取决于相对列的 If 语句 - 无法使其工作
问题描述
我正在使用谷歌表格。我在单元格 E1:AD1 中有复选框。当检查了这些复选框之一时,我希望该列的第1行中的单元格将背景颜色为绿色。
最终,我希望能够对列中的不同行做同样的事情。请在下面查看我的 onEdit 脚本。
/** @OnlyCurrentDoc */
function onEdit(e) {
//This IF statement ensures that this onEdit macro only runs when cells E1:AD1 are edited in the sheet named "Finances 2020"
if (
e.source.getSheetName() == "Finances 2020" &&
e.range.columnStart == 5 &&
e.range.columnEnd == 30 &&
e.range.rowStart >= 1 &&
e.range.rowEnd <= 1
) {
//This if statement checks if the checkbox was checked or unchecked:
var checkboxtest = e.range.getValue()
if (checkboxtest == true) {
//If so, colour the cell in row 1 of that column as green:
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var Finances_2020 = spreadsheet.getSheetByName("Finances 2020");
var Fortnightcolumn = e.range.columnStart
Finances_2020.getRange(1, Fortnightcolumn).setBackground('#d9ead3');
}else{
}
}
}
;
解决方案
- 如果您想对第 1 行(第 5 列和第 30 列之间)的任何已编辑单元格应用背景更改 - 正确的语句应该是:
if (e.source.getSheetName() == "Finances 2020" && 5<=e.range.getColumn()<=30 &&
e.range.getRow() == 1)
- 另外,请记住,
if
仅当工作表名称为 时才输入第一个循环Finances 2020
。因此,要设置背景颜色,您不需要单独处理工作表,而是可以定义e.range.setBackground('#d9ead3');
.
概括
function onEdit(e) {
//This IF statement ensures that this onEdit macro only runs when cells E1:AD1 are edited in the sheet named "Finances 2020"
if (e.source.getSheetName() == "Finances 2020" &&
5<=e.range.getColumn()<=30 &&
e.range.getRow() == 1) {
//This if statement checks if the checkbox was checked or unchecked:
var checkboxtest = e.range.getValue();
if (checkboxtest == true) {
//If so, colour the cell in row 1 of that column as green:
e.range.setBackground('#d9ead3');
}
}
}
如果您还想将背景更改应用到其他行,例如第 1 到 5 行 - 将 if 语句的条件从更改...&& e.range.getRow() == 1
为...&& 1 <= e.range.getRow() <= 5
推荐阅读
- c# - wpf c#隐藏listview上/下滚动条
- linux - 无法在 curl 的授权标头值中替换自定义变量
- azure - 在服务结构 Azure 上升级服务不可达状态
- java - ConcurrentLinkedDeque 可以具有固定大小并覆盖旧元素吗?
- c# - 在 C# 中从 PyObject 获取多个返回值
- javascript - Javascript如何获取外部div元素的替代文本
- git - 带有 bitbucket-pipelines.yml 的 Heroku PHP - 找不到 git 命令
- wpf - 使用 Microsoft.Windows.Shell 时最小化按钮丢失
- javascript - 如何在three.js中沿圆圈弯曲网格?
- php - 如果 id,Laravel 将变量传递给模态对话