google-apps-script - 两个相等的变量不触发 if() 语句
问题描述
我有点生疏,所以可能有一些明显的东西,但我正在设置一个表单,我想在勾选复选框时隐藏一行,但是我用来检查单元格实际内容的 if 语句对照预定的“VALUE”没有触发。上面的日志都打印为“true”,但从未输入过 if 语句。我错过了什么?
var SHEET = "Requests"; //Sheet Name
var VALUE = "true"; //Value that will hide the row
var COLUMN_NUMBER = 11 //Column K
function onOpen(e) {
var ss = SpreadsheetApp.getActiveSpreadsheet(); //Setters and getters woohoo
var activeSheet = ss.getActiveSheet();
if(SHEET == activeSheet.getName()){
var cell = ss.getActiveCell()
var cellValue = cell.getValue(); //Gets current cell and the value in it
//Ensure we are looking at the correct column.
if(cell.getColumn() == COLUMN_NUMBER){
console.log("Cell Contains " + cellValue + " and VALUE is " + VALUE);
if(cellValue == VALUE){
console.log("Rows Hidden");
activeSheet.hideRow(cell);
};
};
};
}[Log showing both printed true][1]
[1]: https://i.stack.imgur.com/XAvpm.png
解决方案
发现:
( VALUE
contains a value "true") 与第 17 行的(contains a value true)string
的值不匹配,这就是您的代码不起作用的原因:cellValue
boolean
if(cellValue == VALUE){
console.log("Rows Hidden");
activeSheet.hideRow(cell);
};
解决方案:
我已经复制了您的脚本,并且能够通过更改预定义的脚本来使其工作VALUE
从:
var VALUE = "true";
到(布尔变量):
var VALUE = true;
推荐:
我还简化了您的脚本(由于嵌套if
语句)并将您的函数从 更改onOpen
为OnEdit
因为onOpenif
由于变量而不会运行您的语句ss.getActiveCell()
,cell
这将需要您突出显示/选择一个单元格,但在打开电子表格时这是不可能的文件。
使用OnEdit
功能将在您在工作表上选中后立即自动隐藏复选框:
var SHEET = "Requests";
var COLUMN_NUMBER = 11;
var VALUE = true;
function onEdit() {
var ss = SpreadsheetApp.getActive().getActiveSheet();
var cell = ss.getActiveCell();
var cellValue = cell.getValue();
if(SHEET == ss.getName() & cell.getColumn() == COLUMN_NUMBER & cellValue == VALUE){
console.log("Cell Contains " + cellValue + " and VALUE is " + cellValue);
console.log("Rows Hidden");
ss.hideRow(cell);
};
}
推荐阅读
- unix - 磁盘使用差异
- python - 在这种情况下,如何使用字典中的前 20 个键将字典中的其余键打印为 40
- sql - 从多个表中提取销售与支出的数据
- django - Django CBV 从表单处理文件上传
- django - 如何在 Django 中打印 404 请求?
- css - 从 node-sass 移动到 dart sass 后,编译器在关键帧 mixin 中抛出错误
- python - 为什么在每个函数调用中,值都会不断更新?
- php - Symfony - 创建新实体而不是更新现有实体
- javascript - npm 错误!在 '...nt":"^7.1.0","babel-p' 附近解析时 JSON 输入意外结束
- php - 在 yii2-datecontrol 扩展中预填充当前日期时间