Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过谷歌表单上的脚本从图像中获取URL——这段代码还能用吗?_Javascript_Google Apps Script - Fatal编程技术网

Javascript 通过谷歌表单上的脚本从图像中获取URL——这段代码还能用吗?

Javascript 通过谷歌表单上的脚本从图像中获取URL——这段代码还能用吗?,javascript,google-apps-script,Javascript,Google Apps Script,我正在使用谷歌表单 单元格A1: =image("address.jpg") 这会将图像放入单元格中。从产生的堆栈溢出中获取url 我创建了这个脚本,Google在autocomplete中识别了它。我得到的错误是: TypeError:无法调用null的方法“match”。(第10行) 我通过一个检查器运行了正则表达式,它确实得到了我要查找的内容,即地址,但错误似乎表明它返回时什么也没有 这个还能用吗?谷歌改变了什么吗 我的工作是创建两张工作表,并在一张工作表中包含§=图像,而在第二张工作表

我正在使用谷歌表单

单元格A1:

=image("address.jpg")
这会将图像放入单元格中。从产生的堆栈溢出中获取url

我创建了这个脚本,Google在autocomplete中识别了它。我得到的错误是:

TypeError:无法调用null的方法“match”。(第10行)

我通过一个检查器运行了正则表达式,它确实得到了我要查找的内容,即地址,但错误似乎表明它返回时什么也没有

这个还能用吗?谷歌改变了什么吗

我的工作是创建两张工作表,并在一张工作表中包含§=图像,而在第二张工作表中,我删除§并使用标准的Google功能

链接解决方案要好得多,如果可以的话,我想实现它。我无法在原始解决方案的页面上发表评论,因为我没有信誉点

在您的情况下,“null”作为参数给出。因为公式不能由
=getImageUrl(A1)
直接检索。这样,
的错误就不能调用null的方法“match”。
发生。可以通过
getFormula()
检索公式。Eric Koleda的回答中也提到了这一点。例如,可以按如下方式修改脚本

修改脚本: 注:
  • 如果将
    =image(“URL”)
    放在“A1”中,当您像
    =getImageUrl(“A1”)
    这样使用它时请用双引号将A1括起来。这样,将“A1”字符串指定给函数并用作范围
参考:

您能提供更多关于您的情况的信息吗?1.From
TypeError:无法调用null的方法“match”。(第10行)。
,我无法理解您当前的脚本。2.你是如何运行脚本的?3.为了正确理解您的情况,您能否提供一份电子表格样本?我认为这些信息会帮助用户想到您的解决方案。@tanaike我复制了此页面上第一个接受的解决方案(Eric的),并创建了一个名为getImageURL的新脚本。我还遵守了他的警告,即“如果URL是从另一个单元格或公式计算的,那么这将不起作用”第10行是“var matches=formula.match(regex);”将:type=image(“any url.jpg”)复制到Google Sheets中的单元格A1中。在单元格B1中,I type=getImageUrl(A1)。我得到了空错误,这似乎表明Regex是错误的?谢谢你的回复。我根据你的情况修改了剧本。这是一个简单的修改。但如果这不是你想要的结果,我道歉。
function getImageUrl(range) {
  var formula = SpreadsheetApp.getActiveSheet().getRange(range).getFormula(); // Added
  var regex = /=image\("(.*)"/i;
  var matches = formula.match(regex);
  return matches ? matches[1] : null;
}