【问题标题】:How to apply Google Sheets 'HTTPResponse' to entire column?如何将 Google 表格“HTTPResponse”应用于整个列?
【发布时间】: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


【解决方案1】:

您可能应该清除单元格 B2,因为这会阻止公式结果扩展。

【讨论】:

  • 感谢您的回复。如果我这样做,那么如何为整个 A 列应用 httpresponse 并在 B 列上写入状态?我在单元格 B1 上尝试了 =HTTPResponse(A2:A) 但所有单元格都为空,没有状态。我很难解决这个问题。我知道我可以通过鼠标复制整个列的公式,但是如何自动复制,所以当我插入新的 url 时它会自动在它旁边写状态!
猜你喜欢
  • 2020-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多