我正在使用Google App脚本。它基于Javascript。
我使用的函数range.isBlank()
会返回错误的布尔值。
我在调试中检查了它是一个错误的布尔值。
但令我惊讶的是,我发现了if(range.isBlank()) {...}
语句
通过代码...
我尝试了一些在网站上找到的解决方案,包括使用===true
。
但是什么都行不通。
要进行复制,请创建一个电子表格,然后在活动工作表中放入以下数据:
| A | B | C | D | E |
1 "Larry Page" 1 2 3
2 "Larry Page" 1 2
3 "Larry Page" 1
在脚本编辑器中,复制以下代码并执行功能。
function DebugGoogle() {
var ssheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ssheet.getActiveSheet()
// Get sheet dimension
var nbRow = sheet.getMaxRows();
// Loop on the rows
for (var i=1; i<=nbRow; i++) {
// Start at the first column
var range = sheet.getRange(i, 1);
var nextRange = sheet.getRange(i, range.getLastColumn()+1);
if (nextRange.isBlank()); {
nextRange.setNote(nextRange.isBlank());
}
// Go right As long as the next right cell is not empty
while (!(nextRange.isBlank())) {
range = nextRange;
nextRange = sheet.getRange(i, range.getLastColumn()+1);
if (nextRange.isBlank()); {
nextRange.setNote(nextRange.isBlank());
}
}
}
}
我希望仅在每行的第一个空白单元格上有一个注释。
D代表第1行,C代表第2行,B代表第3行。
除此之外,我还要注意非空单元格。
这是很奇怪的,因为注释是“ false”,但是if语句输入了...
if (nextRange.isBlank()); {
nextRange.setNote(nextRange.isBlank());
}
我只被期望具有真正价值的笔记...
最佳答案
如果您的脚本是从当前脚本正确复制的,那么我认为在您的脚本中,问题是;
的if (nextRange.isBlank()); {
。在这种情况下,nextRange.setNote(nextRange.isBlank())
始终运行。那么下面的修改呢?
从:
if (nextRange.isBlank()); {
nextRange.setNote(nextRange.isBlank());
}
至:
if (nextRange.isBlank()) { // Modified
nextRange.setNote(nextRange.isBlank());
}
参考:
if...else
关于javascript - Google App脚本:“range.isBlank()”为假,但“if(range.isBlank())”是否通过?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58021022/