链接至范围

链接至范围

目标:

我想创建一个链接,在 Excel online 中打开 Excel 工作表的指定行或单元格,以帮助用户在数千行中查找特定条目,而无需进行筛选、搜索或无休止滚动。当然,Excel 不是我们工作的正确工具;但是,我没有能力改变这一点……

关联:

以下链接的结构可以在 Excel 在线中打开 Excel 工作表,但位于随机位置:

https://company.sharepoint.com/teams/folder/folder/folder/filename.xlsm?web=1

以下链接可用于在指定的单元格中打开工作表,但不能在浏览器中打开:(从此问题回答:使用超链接指定要为 Microsoft Excel 工作簿打开的特定工作表或者通过 URL 链接到 Excel 表中的行或单元格

https://company.sharepoint.com/teams/folder/folder/folder/filename.xlsm#sheetname!a22

问题:

有没有办法修改链接中的查询以同时执行这两项操作?

答案1

链接至范围

链接至此范围功能可能会满足您的要求。我能够用此功能链接到特定单元格,并且 Excel 文件在浏览器中打开,而不是在应用程序中打开。

脚步:

  • 突出显示单元格范围(1)
  • 右键单击(使用鼠标) (2)
  • 选择“复制链接”>“范围”(3,4)
  • (如果需要,授予访问剪贴板的权限(5))
  • 稍等 在 Excel 中复制链接的步骤
  • 这将打开一个窗口,其中可以选择复制链接并更改链接的权限。 复制链接

将会生成一个您可以使用的链接。我的看起来像这样(这是一个空文件,它不是一个真正的链接,所以我不担心使用真实值进行演示):

https://company.sharepoint.com/teams/folder/folder/folder/Test.xlsx?d=wb9d2ce64a09342c38047efa17f828458&csf=1&web=1&e=2emtWu&nav=MTJfQTJfezQ1QTc5MTc1LUU1QzItNEQxQS1CMjcyLTIzMDgzMUQ2NUY1Rn0

URL 中查询字符串的参数如下所示:

  • d
  • 脑脊液
  • 网络
  • 导航

手动操作 URL

我发现本网站解释用法。

E. 每个分享链接后面默认添加此参数部分。

  • d= xxxx – 这将有助于创建一个唯一的 URL,以允许在浏览器中打开文件。如果删除此参数,您将收到下载请求。仅当您与具有现有访问权限的人共享时才会添加此参数。
  • Csf=1 – 与具有现有访问权限的人共享时添加
  • Web=1 – 在浏览器中打开文件
  • E= xxxx – 这个参数的用途尚不清楚;如果删除它,共享将以相同的方式工作。

减少 URL

d我用我的 URL 进行了测试,删除和之后我仍然能够链接到指定的单元格e,所以您甚至可能不需要它们。csfweb总是= 1

因此 URL 可以简化为:

https://company.sharepoint.com/teams/folder/folder/folder/Test.xlsx?csf=1&web=1&nav=MTJfQTJfezQ1QTc5MTc1LUU1QzItNEQxQS1CMjcyLTIzMDgzMUQ2NUY1Rn0

导航参数

现在我们需要弄清楚nav。我的价值是MTJfQTJfezQ1QTc5MTc1LUU1QzItNEQxQS1CMjcyLTIzMDgzMUQ2NUY1Rn0

Base64 解码

我意识到这可能是Base64编码所以我解码它,结果是12_A2_{45A79175-E5C2-4D1A-B272-230831D65F5F}。这很有希望,就像A2我链接到的单元格一样。对于同一文件,其他值保持不变。

瞧,我生成了另一个指向单元格的链接A3。生成的 URL 给出:

  • 导航 =MTJfQTNfezQ1QTc5MTc1LUU1QzItNEQxQS1CMjcyLTIzMDgzMUQ2NUY1Rn0
  • 解码后为12_A3_{45A79175-E5C2-4D1A-B272-230831D65F5F}

这使我得到了我想要链接到的单元格A3

为了更彻底地进行测试,我创建了第二个新文件并进行了测试。我还尝试了第二张表。

对于不同部分12_A3_{45A79175-E5C2-4D1A-B272-230831D65F5F}

  • 12= 在各个文件中保持不变,因此应该是恒定的
  • A3= 根据您想要的单元格进行更改
  • {45A79175-E5C2-4D1A-B272-230831D65F5F}= 根据表格进行更改

结论

只要您第一次就能生成链接(或为您想要链接到的多个工作表生成链接),您就可以手动创建此 URL 以获取值nav并从那里更改单元格和/或工作表。您还需要进行 Base64 编码。

答案2

代替:

=HYPERLINK("https://company.sharepoint.com/teams/folder/folder/folder/filename.xlsm#sheetname!a22")

  • 如果该位置位于当前工作簿的内部,则使用:

    • =HYPERLINK("#sheetname!a22")
  • 如果位置位于不同的工作簿中,并且您可以在桌面应用程序中打开包含超链接(原点)的工作簿,则使用:

    • =HYPERLINK("[`https://company.sharepoint.com/teams/folder/folder/folder/filename.xlsm`]sheetname!a22") 这将在浏览器窗口中打开目标。此公式将不是在用作原点的 Excel 在线工作表中工作。
  • 否则,如果您只想使用 Excel Online 链接到外部工作簿特定单元格,除了上面已经讨论过的手动链接创建之外,我找不到任何有效的组合。鉴于您需要使用 BASE64 转换,您只能使用以下任一方法:

    • 制作启用宏的工作簿并利用 VBA 进行转换或
    • 手动进行 BASE64 转换
  • 对于我的用例来说,这两个都不是一个选择,因为:
    • 我需要创建数千个链接,所以不愿意花时间手动进行所有这些转换
    • 我的雇主不允许在网上使用 .xlsm

相关内容