我有一个谷歌电子表格。 在某些细胞中,它有多个名称(字符串),我想个别的超链接关联。
例如,如果我有一个细胞,如“达尔文”,很容易让我做的东西像创建一个超级链接,这个名字=Hyperlink(VLOOKUP("Charles Darwin", People!$A$1:$B$738, 2, false), "Charles Darwin")
请注意,我有一个“人”表从我抢的超级链接)
但是,如果我碰巧在该单元格,说多个条目“;” 或换行分隔,例如,“查尔斯·达尔文,乔治·华盛顿”,我不能这样做。 我想给用户点击的细胞的能力,已在单元格的内容发送(作为参数),以某种脚本,并为剧本找到超链接在我的“人”片的字符串,然后一点点“弹出”旁边的牢房,在那里可以点击所需的超链接呈现给用户。
我试图找到一起在这个论坛类似的规定,但没有类似的似乎就上来了。 可能有人有两个,我(或基本的例子代码),我可以开始尝试解决这个链接? (我假定这是可能的)。
谢谢
它不可能有同一细胞上的两个超链接。
它可以编写脚本来谷歌电子表格,但我不知道它会满足你的使用情况良好。 我看到的解决办法是这样的:
- 用户点击需要的细胞,选择它。
- 然后,他点击自定义菜单上,拿起一个条目出现,如表演环节
- 弹出框将显示出来(不除细胞,但中心的显示屏上)的链接。
你觉得这是好的? 该代码是这样的(打开菜单工具>脚本编辑器)
function onOpen() {
SpreadsheetApp.getActive().
addMenu("Test", [{name: 'Show Links', functionName:'showLinks'}]);
}
function showLinks() {
var values = SpreadsheetApp.getActiveRange().getValue().split(';');
var app = UiApp.createApplication().setTitle('Links');
var grid = app.createGrid(values.length, 2);
for( var i = 0; i < values.length; ++i ) {
var url = findLink(values[i]);
grid.setWidget(
i, 0, app.createLabel(values[i])).setWidget(
i, 1, url ? app.createAnchor(url, url) : app.createLabel('Not Found'));
}
app.add(grid);
SpreadsheetApp.getActive().show(app);
}
var mapName2Url = null;
function findLink(name) {
if( mapName2Url == null ) { //lazy load
mapName2Url = {};
var data = SpreadsheetApp.getActive().getSheetByName('People').getDataRange().getValues();
for( var i = 1; i < data.length; ++i ) //skipping the header
mapName2Url[data[i][0]] = data[i][1];
}
return mapName2Url[name];
}
之后您将其粘贴在脚本编辑器,运行的OnOpen功能进行二次授权,并为您创建的菜单。 你打开电子表格下一次,菜单应自动创建。
顺便说一句,我没有测试此代码,因此它可能包含愚蠢的错误。
文章来源: a script for google spreadsheet to provide multiple hyperlink choice for one cell