当前位置: 首页 > 知识库问答 >
问题:

如何使用脚本在Google工作表中生成范围ID超链接#rangeID=xxxxxxxxx?

怀晋
2023-03-14

所以最近,谷歌增加了一个功能,你可以超链接到一个特定的细胞,这是伟大的。为此,您可以在特定单元格上使用“插入链接”功能,然后从下拉菜单中单击“选择要链接的单元格区域”,然后选择要链接到的单元格或区域。在这样做的过程中,谷歌生成了一个非常方便(动态)的十位数“范围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()当前不存在于谷歌应用程序脚本的可用选项中;然而,有什么东西可以实现这个功能吗?如果这个命令存在的话,将会非常有用。

有人帮忙吗?有没有其他我没有的方法来实现这一点?

谢谢你的帮助!

共有2个答案

唐哲
2023-03-14

这是命名范围的完美用例,不需要对脚本逻辑进行任何更改。

var range = ss.getRangeByName("NamedRange1");
孔运良
2023-03-14

您可以使用相对url。链接文档中的答案可以在这里找到https://webapps.stackexchange.com/questions/44473/link-to-a-cell-in-a-google-sheets-via-url.

=hyperlink(#gid=0

我认为#gid=0代表第一张纸。然后我可以在图纸中指定范围。我无法让指定的工作表工作。除了第一个工作表/选项卡外,其他所有工作表/选项卡都有一个#gid,您可以在该工作表的url中找到它。

=超链接("#gid=1756281106

 类似资料:
  • 我试图用超链接填充单元格到Google Sheets应用程序脚本中的范围,与我在GUI中完成时所期望的结果相同。我设法以"gid=..."的形式创建了工作表的超链接...是一个工作表ID。但是我很难得到在GUI中生成超链接时使用的rangeID,例如。 是否可以在应用程序脚本中创建指向范围的超链接?

  • 在当前版本的Google Sheet中,要在单元格中插入超链接,可以执行以下操作 在新版Google Sheets中,超链接插入是不同的,您可以这样做。 但是,我有一个问题,在电子表格中插入的值不是我所期望的。在这张显示插入链接的图像中,在=HYPERLINK之前插入了一个“插入”——我不知道这是从哪里来的。有什么想法吗?

  • 我使用脚本将数据从MySQL数据库导入到工作表中。在导入过程中,其他具有重公式的工作表(vlookup、sumifs、filter)会不断重新计算,因此需要花费很长时间。我想在MySQL数据完全导入后,通过脚本插入公式。 为了简化此过程,我想将工作表上的所有公式(这是一个很长的工作表)提取到一个文件中,并将提取的数据格式化为以下方式:示例:从工作表“摘要”中提取数据: 循环检查工作表中的每个单元格

  • 有人能帮我把脚本布局转换成实际的功能代码吗?我有一般的编码知识,但我不知道正确的语法。 基本上,我需要的是一个脚本,当提交表单条目时,它会在所有工作表/选项卡之间循环。表单包含提交表单的人的姓名(字符串)、开始日期、结束日期,最后是注释字段(字符串)。 我需要脚本来遍历每个工作表的第5行,并查找在第一个表单字段中输入的字符串(提交表单的人的姓名)。如果它找到了该名称,它应该将与该名称对应的列保存到

  • 我正在尝试以一种可以使用“=MATCH()”函数复制的方式插入一个指向单元格的超链接。但是,如果不使用GID,我似乎无法找到在Google工作表中链接单元格的方法。 当我右键单击并“获取到此单元格的链接”时,我最终会得到一个带有“#gid=1933185132”的网址。然而,这没有结构,我不能用它来匹配公式,并像我通常在Excel中那样自动填充它。 https://docs.google.com/