【发布时间】:2015-10-04 14:02:09
【问题描述】:
我有一个包含 A 列和 B 列的 Google 表格。在 A 列下我列出了 URL,在 B 列下我想运行这个公式 =HTTPResponse ()。由于我有许多将通过 Google 表单插入的 URL,因此我希望工作表自动将相同的公式应用于所有 URL,而无需我输入 =HTTPResponse (B2)、=HTTPResponse (B3),.. 所以一个用于整个 B 列单元格。
我在 B2 单元格中输入了 =HTTPResponse (A2),在 B1 单元格中输入了 =ARRAYFORMULA(B2:B),我收到了这个错误:
Error on Column B1:
#REF!
Error
Array result was not expanded because it would overwrite data in B2
以及我添加的公式代码:
function HTTPResponse( uri )
{
var response_code ;
try {
response_code = UrlFetchApp .fetch( uri ) .getResponseCode() .toString() ;
}
catch( error ) {
response_code = error .toString() .match( / returned code (ddd)./ )[1] ;
}
finally {
return response_code ;
}
}
为什么我不断收到这个错误,为什么=HTTPResponse 没有应用于整个数据列(旧的和新插入的数据)?
【问题讨论】:
-
您已经发布了类似的问题。使用自定义函数对您的目的不起作用,因为 google 将永远缓存它为每个唯一 url 获得的响应。因此,即使服务器关闭或响应更改,相同的 url 也不会失败。
-
感谢 rrply 。那么解决方案是什么?我知道人们使用电子表格来查找死链接!
-
解决方案在您遗弃的其他(基本上是重复的)上
标签: google-apps-script google-sheets array-formulas http-response-codes