我正在使用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/

10-09 15:34