【问题标题】:Google Sheets Script .getValue() and .getDisplayValue() returning #REF For Some ReasonGoogle 表格脚本 .getValue() 和 .getDisplayValue() 由于某种原因返回 #REF
【发布时间】:2016-12-29 05:02:53
【问题描述】:

我以前有这个功能,但由于某种原因它不再工作了。 This is a picture of the three pieces of data I am trying to collect. 他们引用了我文件中的其他几张纸,包括一些“间接”。以下是我试图运行以获取其中一条数据的值的简单代码:

var ss = SpreadsheetApp.openById(logKey).getSheetByName("Investing");
var value = ss.getRange("G2").getValue();
var formula = ss.getRange("G2").getFormula();
Logger.log("Value: " + value + "  Formula: " + formula);

...这是输出:

[16-10-06 09:50:04:531 EDT] 值:#REF!公式:=AD$2

从输出中可以看出,它成功地从电子表格中读取了单元格,但并没有从单元格中获取值,只是获取公式。我不明白为什么在我的工作表中会出现这种情况,它试图获得的值是 not '#REF!'。

正如我之前所说,我之前有过这段通用代码,但我一定是做了一些更改,以至于它破坏了我正在尝试做的事情。

附加说明:我不确定这段代码是否出于某种原因是罪魁祸首,即使它以前是这样工作的。这只是将列号转换为另一张表中的行号,以便于复制和粘贴:

=INDEX(
  INDIRECT(
    CONCATENATE("QUOTES!",
      REGEXEXTRACT(ADDRESS(ROW(), ((ROW()-3)*5)+4), "[A-Z]+"),
      "4:", 
      REGEXEXTRACT(ADDRESS(ROW(), ((ROW()-3)*5)+4), "[A-Z]+")
    )
  ), 
  COUNT(
    INDIRECT(
      CONCATENATE("QUOTES!",
        REGEXEXTRACT(ADDRESS(ROW(), ((ROW()-3)*5)+4), "[A-Z]+"),
        "4:", 
        REGEXEXTRACT(ADDRESS(ROW(), ((ROW()-3)*5)+4), "[A-Z]+")
      )
    )
  )
)

【问题讨论】:

  • 从那以后你有任何更新吗?顺便说一句,您不一定必须使用 Apps 脚本进行测试。当 Apps 脚本错误地读取 #REF 时,importrange 也会。

标签: google-apps-script google-sheets


【解决方案1】:

简答

为了避免#REF!错误,公式不应放在第二行。它可以放在第 3 行和第 3 行以下。

说明

ADDRESS(ROW(), ((ROW()-3)*5)+4) 在第 2 行的任何单元格上都会返回以下错误消息:

Function ADDRESS 参数 2 的值为 -1。有效值介于 1 和 18278 之间。

【讨论】:

  • 对不起,这不是我的问题。该公式在 Google 工作表中对我来说很好,但只有当我在脚本编辑器中引用它时,它才会返回 #REF!。这可以从第一张图片中看出,数字应该存在于工作表中。只有当我尝试在脚本编辑器中引用它们时,它才会认为它们包含#REF!由于某些原因。你是对的,它不应该在第二行,它不是。它位于第 3 行或更大的行上。
  • 图片没有显示行和列标题,换句话说,没有足够的细节来重现你看到的问题。请创建一个演示电子表格,与知道链接的任何人共享,仅供查看,并将链接添加到您的问题中。
猜你喜欢
  • 1970-01-01
  • 2020-03-26
  • 2021-07-06
  • 1970-01-01
  • 1970-01-01
  • 2023-03-07
  • 2018-01-28
  • 1970-01-01
  • 2013-02-05
相关资源
最近更新 更多