javascript - 如何修复此 "Execution failed: These columns are out of bounds."错误?

标签 javascript google-apps-script

我已经编写了这个函数,但收到错误“执行失败:这些列超出范围。” (在我的翻译中)。生成错误的行是 var CellName =sheet.getRange(1, i+1);。我得到了这个结果:

enter image description here

这些是日志:

enter image description here

这是文字记录:

enter image description here

代码如下。我的疑问是为什么 for 循环在 header7 处停止而不是在所有 header 处停止?

  var font_size = 12;
  var headers = "HEADER1 HEADER2 HEADER3 HEADER4 HEADER5 HEADER6 HEADER7 HEADER8 HEADER9";
  var arrayHeaders = headers.split(/[\s\t]+/);
     Logger.log("arrayHeaders = " + arrayHeaders);
    for (var i = 0; i < arrayHeaders.length; i++){
       Logger.log("arrayHeaders.length = " + arrayHeaders.length);
      var CellName = sheet.getRange(1, i+1);
      CellName.setValue(arrayHeaders[i]).setBackgroundRGB(34, 139, 34).setFontSize(font_size).setFontWeight("bold").setFontFamily("Arial");
      // There is no column 0, so i+1 to start
      sheet.setColumnWidth(i+1, 100);
    }

最佳答案

在以下函数中使用您的代码,脚本完成时没有错误,并且电子表格中的每个单元格中都包含预期的列标题:

function myFunction() {

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  var font_size = 12;
  var headers = "HEADER1 HEADER2 HEADER3 HEADER4 HEADER5 HEADER6 HEADER7 HEADER8 HEADER9";
  var arrayHeaders = headers.split(/[\s\t]+/);

  Logger.log("arrayHeaders = " + arrayHeaders);

  for (var i = 0; i < arrayHeaders.length; i++){
    Logger.log("arrayHeaders.length = " + arrayHeaders.length);
    var CellName = sheet.getRange(1, i+1);
    CellName.setValue(arrayHeaders[i]).setBackgroundRGB(34, 139, 34).setFontSize(font_size).setFontWeight("bold").setFontFamily("Arial");
    // There is no column 0, so i+1 to start
    sheet.setColumnWidth(i+1, 100);
  }
}

我最初认为,因为在屏幕截图中只有 7 列 getRange 失败,因为它尝试获取的列索引尚不存在。在测试过程中,我发现 getRange 在需要时创建新列。

我只能认为您的工作表中可能有 protected 范围或卡住的列?在新的电子表格中尝试上面的函数,看看会发生什么。

关于javascript - 如何修复此 "Execution failed: These columns are out of bounds."错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21211672/

相关文章:

csv - Google Apps 脚本 txt 文件 getDataAsString() 返回字符之间的 � 和方形符号

javascript - 使用 Google 表格创建嵌套 JSON 对象

javascript - 将键分配给数组对象

javascript - 无法解决 promise

javascript - 简单解释一下 BackboneJS 是如何工作的?

javascript - 如何断言在 Jest 测试中使用 `async` 调用依赖项?

javascript - Google 脚本 - 超出最大执行时间

javascript - 计算数组javascript中的百分比

google-apps-script - 在自定义函数中获取单元格对象

javascript - Google Apps 脚本 - UiApp ServerHandler 回调函数 - 值未定义