【发布时间】:2020-05-08 17:48:43
【问题描述】:
我试图计算一列中填充单元格的数量,一旦它为空,计数应该停止。因此,我强加了这个条件:
sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1')
numberOfRows = 0
while(sheet.getRange(2,1,sheet.getLastRow()-1,1).getValues()[numberOfRows] != '') {
numberOfRows ++
}
我在 Google Apps Script 上打开了调试器,发现上面的 while 循环并没有停止。经过进一步测试,我发现空的单元格是“未定义的”,而不是它们应该返回的传统空字符串。单元格返回“未定义”而不是“”的任何可能原因?
【问题讨论】:
-
调试器有问题。还有什么可以表明循环没有停止?
-
这是一个可怕的循环。您应该永远在循环中调用 getValues。调用一次并循环内容。 stackoverflow.com/questions/49020131/…
-
当我暂停调试器时,numberOfRows 的值飙升至 ~600000。这表明while循环没有停止
-
@tehhowch 实际上,即使我将 getValues 放在顶部的另一个变量中,结果仍然相同:while 循环没有停止,空单元格仍然是“未定义”而不是传统的空字符串。
标签: string google-apps-script while-loop counter