【问题标题】:Excel 2010 Hyperlinking CellsExcel 2010 超链接单元格
【发布时间】:2015-12-31 14:59:22
【问题描述】:

我在一个 Excel 文档(工作簿)中有两张工作表。它们在相同排列中具有相同数量的单元格。第一张表包含摘要信息,第二张表(在相应的单元格中)包含更详细的信息。

我想超链接工作表,以便人们可以单击摘要单元格以转到详细单元格。

我知道我可以使用以下公式来创建超链接:

HYPERLINK(link_location, [friendly_name])

并且(至少在 Excel 2010 中)“link_location”条目必须采用“#BOOK!Cell”格式,其中必须包含引号。

但是,当您单击单元格进行选择时,公式会将其处理为 BOOK!CELL。可以拖动并让其他单元格自动填充为 BOOK!CELL 格式。但后来我只有一堆破碎的细胞。关于如何以正确格式自动填充我的第一张工作表的任何建议?

【问题讨论】:

  • 你能展示一个你正在尝试做什么的样本吗?您在超链接单元格中的输入和预期输出?
  • 请发布您尝试过的公式。这将有助于缩小问题的症结。
  • 输出应该是每个单元格(或给定行中的每个单元格开始)都应该是详细表中相应单元格的超链接,并带有原始值的“友好文本”汇总表中的单元格。我最终将通过第三张表格来完成此操作,即重新制作汇总表格,其中每个单元格的链接值 = 详细表格单元格和辅助值 = 汇总表格单元格。我的问题是上面描述的语法问题,而不是执行的这一部分。
  • 听起来你需要Indirect(),但我并不积极。您能否发布一个数据样本以及您希望它在您的公式中的样子?

标签: excel


【解决方案1】:

您需要使用子地址链接到工作簿中的某个位置。我将在下面运行此示例,该示例将更新所有链接以反映其他工作表位置。将工作表的名称更改为您的两个工作表名称。

Sub FixMyLinks()
On Error Resume Next
Dim c As Range
Dim wsSummary As Worksheet
Dim wsDetails As Worksheet

Set wsSummary = ThisWorkbook.Sheets("Sheet1")
Set wsDetails = ThisWorkbook.Sheets("Sheet2")
    For Each c In wsSummary.UsedRange.Cells
        wsSummary.Hyperlinks.Add Anchor:=c, Address:="", SubAddress:=wsDetails.Name & "!" & Replace(c.Address, "$", ""), TextToDisplay:=c.Value
    Next c

End Sub

【讨论】:

  • 澄清一下,我应该先用我帖子中描述的“错误”格式将它们全部链接起来,然后在 VBA 终端中运行它?
  • 您不需要链接它们,因为这就是代码的作用。据我了解,表 1 单元格 A1 应链接到表 2 A1。制作工作簿的副本。然后在其上运行 VBA 代码,这样您就可以看到如果您不完全理解它会如何产生结果。我相信这就是您想要完成的目标。
  • 感谢您的帮助。它说“无效的过程调用”,当我单击调试时,它会突出显示 For Each 下面的行。我将 Sheet1 的值更改为正确的工作表名称。
  • 在使用范围内是否有空白单元格?空白单元格没有错误处理。
  • 我很抱歉在这件事上如此无助。我没有看到选择范围的位置(在公式中)。有问题的范围是否只是整个 Excel 工作表?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-08-04
  • 2023-03-17
  • 1970-01-01
  • 1970-01-01
  • 2011-01-17
  • 2017-05-30
  • 2021-05-12
相关资源
最近更新 更多