【问题标题】:Google Apps Script returning out of bounds errorsGoogle Apps 脚本返回越界错误
【发布时间】:2021-08-07 18:41:31
【问题描述】:

我正在尝试在包含 37 列的 Google 表格上插入一列。所有列都有数据。 当我执行这行代码时

enhancedpreSheet.insertColumnAfter(31); 

我收到错误“那些列超出范围”。我无法解释为什么。 我试图解决这个问题并且变得更加困惑。 当我执行时

Logger.log("enhancedpreSheet last column:" + enhancedpreSheet.getLastColumn());
Logger.log("enhancedpreSheet max column:" + enhancedpreSheet.getMaxColumns());

我明白了:

[21-08-06 20:21:33:572 EDT] enhancedpreSheet last column:37
[21-08-06 20:21:33:572 EDT] enhancedpreSheet max column:26

getLastColumn() 如何返回比 getMaxColumns() 更高的值? 为什么 getMaxColumns() 返回 26 而不是 37?

【问题讨论】:

  • 如果大幅减少行数会怎样?
  • 请添加minimal reproducible example,包括与任何知道链接的人共享的电子表格,以查看仅包含重现错误所需的元素。
  • 减少行数不会改变 ourcome 最小可重现示例:docs.google.com/spreadsheets/d/…
  • 我已经检查过你的表格,但都返回 37。

标签: google-apps-script google-sheets


【解决方案1】:

在插入新列之前添加SpreadsheetApp.flush();

当新命令(插入新列)到达时,SpreadsheepApp 似乎无法跟上填充表格的所有单元格。

【讨论】:

  • 这并不奇怪。这是与 JS 无关的不太明显的电子表格技巧之一。即使是非常有经验的人@idfurw 也没有猜到。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多