之前我有这个功能,但由于某种原因它不再工作了。 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
从输出中可以看出,它成功地从电子表格中读取了单元格,但它没有从单元格中获取值,只是公式。我不明白为什么会出现这种情况,因为在我的工作表中,它试图获得的价值是不' #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]+")
)
)
)
)
答案 0 :(得分:0)
避免#REF!错误,公式不应放在第二行。它可以放在第3行和第3行。
ADDRESS(ROW(), ((ROW()-3)*5)+4)
都会返回以下错误消息:
函数ADDRESS参数2的值为-1。有效值介于1和18278之间。