【问题标题】:Google App Script : "range.isBlank()" is false but "if(range.isBlank())" go through?Google App Script:“range.isBlank()”为假,但“if(range.isBlank())”通过?
【发布时间】:2019-09-20 02:30:41
【问题描述】:

我正在使用 Google 应用脚本。它基于 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 行。 取而代之的是,我还有非空单元格的注释。 这很奇怪,因为注释是“假”但 if 语句输入 ...

if (nextRange.isBlank()); {
    nextRange.setNote(nextRange.isBlank());
}

我只希望有真正价值的笔记......

【问题讨论】:

    标签: javascript if-statement google-apps-script boolean


    【解决方案1】:

    如果您的脚本是从当前脚本正确复制的,我认为在您的脚本中,问题是;if (nextRange.isBlank()); {。在这种情况下,nextRange.setNote(nextRange.isBlank()) 始终运行。那么下面的修改呢?

    发件人:

    if (nextRange.isBlank()); {
        nextRange.setNote(nextRange.isBlank());
    }
    

    收件人:

    if (nextRange.isBlank()) {  // Modified
        nextRange.setNote(nextRange.isBlank());
    }
    

    参考:

    【讨论】:

    • 是的,你完全正确。它现在可以工作了......非常感谢! (对于这个明显的错误,我们深表歉意)
    • @Bleuzaille 没问题。我很高兴你的问题得到了解决。也谢谢你。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-20
    • 1970-01-01
    • 2018-02-03
    • 1970-01-01
    • 1970-01-01
    • 2019-11-18
    • 1970-01-01
    相关资源
    最近更新 更多