代码之家  ›  专栏  ›  技术社区  ›  Aemarr

使用getRange()时找不到Getting Range

  •  0
  • Aemarr  · 技术社区  · 1 年前

    每次我使用 getRange 在我的程序(第8行和第11行)中,我得到一个错误

    error

    异常:找不到范围,

    但我不明白为什么。

    我试着使用 getA1notation() toString() ,但两者都导致了相同的错误。

    代码为文本:

    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sheet = ss.getSheets()[0];
    
    function rangeAsNote(targCell, targRange) {
      //Sets up output string
      let rangeAsString = new String();
      //Creates new var "cell" and sets it to the inputted range of cells
      var cell = sheet.getRange(targCell);
    
      //Sets "rangeAsString" to "targRange" converted to the desired format using rangeToString()
      rangeAsString = rangeToString(sheet.getRange(targRange));
    
      //Sets the note of "cell" to "rangeAsString"
      cell.setNote(rangeAsString);
    
      return;
    }
    
    1 回复  |  直到 1 年前
        1
  •  0
  •   Wicket    1 年前

    让我们首先说,你试图做的是不可能的,因为谷歌表单中的自定义函数只能返回值;它们不能用于修改电子表格。

    让我们深入探讨具体的问题。您遇到的错误消息可能是由于在Google Sheets和Google Apps Script中用作自定义函数参数的单元格/范围引用。这些引用返回的是单元格/范围值,而不是 SpreasheetApp.Sheet.getRange 方法了解这一点将帮助您更有效地进行故障排除。

    而不是

    =rangeAsNote(A1, E1:G1)
    

    最简单的解决方案是使用文本值作为参数,如下所示:

    =rangeAsNote("A1", "E1:G1")
    

    然而,正如在这些答案之上提到的,由于自定义功能的限制,这将不会像您预期的那样工作。使用另一种方法调用函数:

    • 使用自定义菜单项。
    • 将功能分配给图像。
    • 使用谷歌应用程序脚本触发器。
    • 从使用HTML服务创建的对话框、侧边栏或web应用程序运行该功能。
    • 从应用程序脚本编辑器运行该函数。

    这可能意味着对函数进行修改以传递所需的参数。