因此,最近,谷歌增加了一个功能,你可以超链接到一个特定的单元格,这是很棒的。为此,您可以在特定单元格上使用“插入链接”功能,然后从下拉菜单中单击“选择要链接的单元格范围”,然后选择要链接到的单元格或区域。在这样做的时候,Google会生成一个非常方便(和动态的)十位数的"Range ID“。
它看起来像这样:=HYPERLINK("#rangeid=1234567890","link")
然而,我不明白的是,如何使用脚本创建它。
对我来说,这个函数不存在似乎很奇怪,因为它可以手动完成。
我可以使用下面的代码来生成一个工作表ID,它在创建在页面之间跳转的超链接时非常方便:
var ss = SpreadsheetApp.getActive();
var sheet1 = ss.getSheetByName(name);
var gid = sheet.getSheetId();
sheet2.getRange("A1").setFormula('=hyperlink("#gid='+gid+'","'name'")');
我可以使用下面的代码来创建到特定单元格的链接,但它不是动态的,一旦将行/列插入到工作表中就会断开:
var ss = SpreadsheetApp.getActiveSpreadsheet();
var range = ss.getRangeByName("A10");
var sheetID = range.getSheet().getSheetId();
var rangeCode = range.getA1Notation();
sheet2.getRange("J10").setFormula('=hyperlink("https://docs.google.com/spreadsheets/d/'+ss.getId()+'/edit#gid='+sheetID+'&range='+rangeCode+'","link")');
必须有一种方法来完成下面的代码,但目前我找不到一种方法:
var ss = SpreadsheetApp.getActiveSpreadsheet();
var range = ss.getRangeByName("A10");
var rangeID = range.**getRangeID()**;
sheet2.getRange("J10").setFormula('=hyperlink("#rangeID='+rangeID+'","link")');
我知道getRangeID()
目前在Google Apps脚本的可用选项中不存在;然而,有什么东西可以实现这个功能吗?如果这个命令存在,那将是非常有帮助的。
外面有什么帮助吗?有没有其他方法来完成我错过的这件事?
谢谢你的帮助!
发布于 2019-11-13 06:33:09
您可以使用相对url。链接文档中的答案可以在这里找到https://webapps.stackexchange.com/questions/44473/link-to-a-cell-in-a-google-sheets-via-url。
示例:
=hyperlink("#gid=0&range=A2",Bookmarks!A2)
我认为#gid=0代表了第一张纸。然后我可以在工作表中指定范围。我无法让命名表正常工作。除了第一个工作表/选项卡之外,其他所有工作表都有一个#gid,您可以在该工作表的url中找到它。
例如:
=hyperlink("#gid=1756281106&range=A2",Bookmarks!A2)
发布于 2018-04-13 08:49:01
这是named ranges的一个完美用例,它不需要对脚本逻辑进行任何更改。
var range = ss.getRangeByName("NamedRange1");
https://stackoverflow.com/questions/49805385
复制相似问题