【问题标题】:Linking to another tab in Google Sheets链接到 Google 表格中的另一个标签
【发布时间】:2016-09-21 16:22:32
【问题描述】:

我有一个包含 70 多个标签或工作表的 Google 表格工作簿。在其中一个中,我有一个所有这些的主列表。为了更好地参考,在“PropertyID”选项卡和 F 列中,从 2 开始,我有工作簿中其他工作表的名称。我想找到一种将每个工作表超链接到 PropertyID 选项卡的方法,这样如果有人在这个主“菜单”中按下一个链接,它就会把他们带到特定的工作表。到目前为止,我一直在对每张工作表进行评论,并使用“链接到评论”链接做我想做的事,但是这个过程很繁琐,必须手动完成,如果我必须下载工作簿到 Excel为了更容易编辑,然后返回工作表,所有评论都变成了“注释”,链接丢失了。有什么办法可以做到这一点?

【问题讨论】:

    标签: google-sheets google-sheets-api


    【解决方案1】:

    这是一个forum,与您的问题类似。

    [Source.]

    当您切换到 Google 电子表格中的其他工作表时,请注意浏览器地址栏中的 URL。在 URL 的末尾,您应该会看到如下内容:

    #gid=0

    当您切换工作表时,此数字会发生变化,并指定要显示的工作表。复制整个 URL 并使用以下公式创建指向它的超链接:

    =hyperlink("https://docs.google.com/spreadsheet/ccc?key=0AsaQpHJE_LShcDJ0dWNudHFZWVJqS1dvb3FLWkVrS0E#gid=0", "链接文本")

    您还可以在上面提供的链接中查看如何使用脚本进行操作。 “此菜单项将打开一个面板,其中包含当前电子表格中所有工作表的名称列表。它看起来不像,但如果您单击其中一个工作表名称,该工作表将出现在前面。”

    这是一个相关的线程,可能也有帮助:

    希望这会有所帮助!

    【讨论】:

    • 谢谢。对于以后阅读本文并想知道我是如何解决它的每个人,这就是我所做的:我从您提到的论坛中复制了脚本: function showSheetByName(Name) { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheetByName(ss.getActiveCell().getValue()); SpreadsheetApp.setActiveSheet(sheet);然后我导入了一张图片,并为其分配了脚本。现在,每次我选择一个单元格并单击图片时,它都会将我带到所选单元格中命名的工作表。
    【解决方案2】:

    Google 表格现在正式支持非公式超链接,因此您现在有另外两种方法可以做到这一点。

    1. 手动方式:选择一个单元格,插入一个链接(Insert > Insert Link or Ctrl+K),然后添加一个链接到目标表#gid=<sheet id>。与 HYPERLINK 公式不同,工作表将在当前选项卡中打开。

    2. 自动方式:创建脚本(工具 > 脚本编辑器)并使用 setLinkUrl() 链接到工作表。
      例如,以下函数从第 2 行开始遍历工作表“Foo”的 A 列中的所有单元格,并根据该行的文本分配链接。

      function linkRange() {
        const startRow = 2,  // Start at the second row.
              column   = 1;  // Add links to column A.
      
        const spreadsheet = SpreadsheetApp.getActive(),
              sheet = spreadsheet.getSheetByName("Foo"),
              lastRow = sheet.getLastRow();
      
        for (let row = startRow; row <= lastRow; row++) {
          const range         = sheet.getRange(row, column),
                richTextValue = range.getRichTextValue(),
                targetSheet   = spreadsheet.getSheetByName(richTextValue.getText());
      
          if (targetSheet !== null) {
            const sheetId = targetSheet.getSheetId(),
                  builder = richTextValue.copy().setLinkUrl(`#gid=${sheetId}`);
      
            range.setRichTextValue(builder.build());
          }
        }
      }
      

      请注意,它将丢弃该列中现有的链接和公式。

    【讨论】:

      【解决方案3】:

      这个怎么样: 来自我的分析器表,它提供了许多演示表。

      如果工作表是动态创建/插入的,您可以自动插入#gid。

      EDIT 1 Sheet ref 可以缩减为#gid;添加过滤器

      =ArrayFormula(
          SORT(
              FILTER(
                  HYPERLINK("#gid="&Analyser!H4:H,Analyser!G4:G),Analyser!H4:H>0)
          )
      )
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-10-30
        • 2023-02-02
        • 1970-01-01
        • 2018-06-04
        • 1970-01-01
        • 1970-01-01
        • 2020-10-16
        • 2020-03-04
        相关资源
        最近更新 更多