gpt4 book ai didi

javascript - 谷歌应用程序脚本 : "range.isBlank()" is false but "if(range.isBlank())" go through?

转载 作者:行者123 更新时间:2023-11-30 19:15:46 24 4
gpt4 key购买 nike

我正在使用 Google App Script。它基于 Javascript。
我使用一个函数 range.isBlank(),它以一个错误的 boolean 值响应。
我在调试中检查过它是一个错误的 boolean 值。

但令我惊讶的是,我发现语句 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());
}

我被期望只有真正有值(value)的笔记......

最佳答案

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

来自:

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

收件人:

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

引用:

关于javascript - 谷歌应用程序脚本 : "range.isBlank()" is false but "if(range.isBlank())" go through?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58021022/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com