我正在使用Google表格。
单元格A1:
=image("address.jpg")
这会将图像放入单元格中。要从Stack Overflow中获取网址,请生成this answer。
我创建了脚本,并且Google能够自动完成识别它。我得到的错误是:
TypeError:无法调用null的方法“ match”。 (第10行)。
我通过一个检查器运行了正则表达式,它确实得到了我要查找的内容,即地址,但是错误似乎表明它没有任何返回。
这仍然有效吗? Google进行了更改吗?
我的解决方法是创建两个工作表,并在一个工作表中包含§= image,而在第二个工作表中,我删除§并使用标准的Google函数。
链接解决方案要好得多,如果可以的话,我想实现这一点。我没有信誉点,因此无法在原始解决方案的页面上发表评论。
答案 0 :(得分:0)
在您的情况下,“ null”作为参数给出。因为=getImageUrl(A1)
无法直接检索公式。由此,发生Cannot call method "match" of null.
的错误。可以通过getFormula()
检索公式。埃里克·科莱达(Eric Koleda)的回答中也提到了这一点。因此,例如,可以对脚本进行如下修改。
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;
}
=image("URL")
放在“ A1”中,则像=getImageUrl("A1")
这样使用时。 请用双引号将A1括起来。这样,字符串“ A1”将被赋予函数并用作范围。