【发布时间】:2018-09-25 14:28:58
【问题描述】:
我正在寻找一种简单的方法,让我的代码将链接从常规静态文本转换为可单击的超链接。该代码应该让您输入文本,然后代码会自动将其转换为一个链接,让您可以在 Google 涂鸦游戏 Image Breakout(Atari Breakout 的衍生产品)中使用该图像搜索。
我做的第一件事就是试试这个:
function IMAGEBREAKOUT(input)
{
var array = [];
var url = 'https://www.google.com/search?q=' + input + '&tbm=isch&tbs=boee:1';
array.push([url]);
return array;
}
那只给了我常规的文本,并没有给我一个可点击的链接,所以我尝试了这个:
function IMAGEBREAKOUT(input)
{
var array = [];
var url = 'https://www.google.com/search?q=' + input + '&tbm=isch&tbs=boee:1';
array.push("<a href=url>" + url + "</a>");
return array;
}
但是,这只给了我不起作用的 HTML 格式的静态文本。所以,然后我尝试研究,并继续尝试:
function IMAGEBREAKOUT(input)
{
var array = [];
var url = 'https://www.google.com/search?q=' + input + '&tbm=isch&tbs=boee:1';
SpreadsheetApp.getActiveSheet().getActiveCell().setFormula('=HYPERLINK("' + url + )');
}
但它说我没有权限拨打setFormula。
我稍后尝试授权该应用程序,并且在编辑器中运行它时它工作,但在 Google 表格中运行公式给我同样的错误。
我在这里很紧张。有人可以帮助我,或者修改我的脚本,使其不需要那么多吗?如果那不可能,是否有一种我没有考虑过的更简单的方法来做到这一点?谢谢!
【问题讨论】:
-
自定义函数(例如
A1: =MyAppsScriptFunction(someInput))不能修改任何单元格 - 它只能return一个值或一个值数组。这是设计使然。 developers.google.com/apps-script/guides/sheets/… -
@tehhowch 好的,可以让它作为超链接返回吗?
-
@I'-'我试图得到你所描述的,而对我来说,我的第一个函数并没有做到这一点。它只是给了我无法点击的静态文本。
-
@I'-'我刚刚尝试了
=IMAGEBREAKOUT("cute puppies"),但它不起作用。然后我尝试=IMAGEBREAKOUT("Atari"),它突然工作了。现在我很困惑。您的超链接功能在两个示例中都可以正常工作,但我需要弄清楚如何在没有其他功能的情况下使其自行工作。 -
@I'-'I 哦,谢谢!
标签: google-apps-script google-sheets custom-function