Google sheets 谷歌电子表格:动态超链接公式
我正在尝试创建一个动态超链接公式,该公式将根据a列中的工作表名称自动创建链接,但我不确定如何(或是否可能)根据名称获取工作表的URL 以下是设置:Google sheets 谷歌电子表格:动态超链接公式,google-sheets,Google Sheets,我正在尝试创建一个动态超链接公式,该公式将根据a列中的工作表名称自动创建链接,但我不确定如何(或是否可能)根据名称获取工作表的URL 以下是设置: 一个谷歌电子表格和多个标签 选项卡名称:1500、1501、1502、合并 在“合并”选项卡上,我有两列:A列是工作表名称,B列是超链接公式,单击时应打开相应的工作表 是否有一种方法可以基于列a中的工作表名称以编程方式获取工作表的URL?也许我可以使用一个脚本用URL填充C列,然后使用以下公式:=HYPERLINK(C2,A2) 谢谢你的帮助 惊
- 一个谷歌电子表格和多个标签
- 选项卡名称:1500、1501、1502、合并
谢谢你的帮助 惊讶地发现这是谷歌的顶级搜索,但没有答案 无论如何,我发现了一种适合我的方法:使用
&
将超链接与不同列中的值结合起来,下面是一个基本示例:
如果您试图根据特定工作表的名称自动生成指向这些工作表的直接URL,并且不想使用脚本,那么您就倒霉了。目前,直接链接到特定工作表的唯一方法是将正确的gid编号附加到电子表格URL。gid必须从活动工作表的URL手动复制,或使用脚本创建的自定义函数自动提取 既然您对使用脚本持开放态度,那么我似乎找到了一个关于如何使用脚本的详细教程
超链接是动态生成的。你所建议的方式会起作用,或者你可以把整个URL放在超链接中formula@Calum:对混乱表示歉意;我知道链接是在成功输入超链接公式时生成的。我要寻找的是一种基于a列中的工作表名称动态生成URL字符串的方法。有什么想法吗?嗨,无论如何,设置/前缀值
https://example.com/
链接到特定列中的所有值?这在链接到其他工作表时特别有用:您可以在一行中填入“A1”、“A2”。。。然后使用#gid=0&range=“&
链接。对于希望复制意大利面=HYPERLINK(“https://example.com/“&A2,“链接”)
function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu('Index Menu')
.addItem('Create Index', 'createIndex')
.addItem('Update Index', 'updateIndex')
.addToUi();
}
// function to create the index
function createIndex() {
// Get all the different sheet IDs
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheets = ss.getSheets();
var namesArray = sheetNamesIds(sheets);
var indexSheetNames = namesArray[0];
var indexSheetIds = namesArray[1];
// check if sheet called sheet called already exists
// if no index sheet exists, create one
if (ss.getSheetByName('index') == null) {
var indexSheet = ss.insertSheet('Index',0);
}
// if sheet called index does exist, prompt user for a different name or option to
cancel
else {
var indexNewName = Browser.inputBox('The name Index is already being used,
please choose a different name:', 'Please choose another name',
Browser.Buttons.OK_CANCEL);
if (indexNewName != 'cancel') {
var indexSheet = ss.insertSheet(indexNewName,0);
}
else {
Browser.msgBox('No index sheet created');
}
}
// add sheet title, sheet names and hyperlink formulas
if (indexSheet) {
printIndex(indexSheet,indexSheetNames,indexSheetIds);
}
}
// function to update the index, assumes index is the first sheet in the workbook
function updateIndex() {
// Get all the different sheet IDs
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheets = ss.getSheets();
var indexSheet = sheets[0];
var namesArray = sheetNamesIds(sheets);
var indexSheetNames = namesArray[0];
var indexSheetIds = namesArray[1];
printIndex(indexSheet,indexSheetNames,indexSheetIds);
}
// function to print out the index
function printIndex(sheet,names,formulas) {
sheet.clearContents();
sheet.getRange(1,1).setValue('Workbook Index').setFontWeight('bold');
sheet.getRange(3,1,names.length,1).setValues(names);
sheet.getRange(3,2,formulas.length,1).setFormulas(formulas);
}
// function to create array of sheet names and sheet ids
function sheetNamesIds(sheets) {
var indexSheetNames = [];
var indexSheetIds = [];
// create array of sheet names and sheet gids
sheets.forEach(function(sheet){
indexSheetNames.push([sheet.getSheetName()]);
indexSheetIds.push(['=hyperlink("#gid='
+ sheet.getSheetId()
+ '","'
+ sheet.getSheetName()
+ '")']);
});
return [indexSheetNames, indexSheetIds];
}