首页 > 解决方案 > 创建指向新工作表的超链接

问题描述

我的“主表”中有一长串名字。我需要遍历这些行,创建一个具有相同名称的工作表,然后向该工作表添加一个超链接。

我能够创建工作表,但无法创建指向匹配工作表的适当超链接。

这是代码片段:

    'HERE, I COUNT HOW MANY INDIDUAL ROWS THERE ARE IN COLUMN A'''

    Sheets("MainSheet").Range("A1").Select

    Range(Selection, Selection.End(xlDown)).Select

    Total = Selection.Count 

    'here, I copy the cell value and create a new sheet, using the cell value as the name

    'Since some cells had more than 31 characters, I had to create a code to only take the first 30 characters

    For i = Total To 1 Step -1

        Sheets("MainSheet").Cells(i, 1).Select

        Take = Left(ActiveCell, 30)

        Sheets.Add.Name = Take

        Worksheets("MainSheet").Activate

        Worksheets("MainSheet").Cells(i, 1).Select

    Next

该代码有效。

我现在需要遍历同一个列表并创建适当的超链接。

这是行的示例:

温度探头和数据传感器 A1
温度探头和数据传感器 A2
温度探头和数据传感器 A3
温度探头和数据传感器 A4
空气和压力传感器 A1

所有这些都有自己的工作表,但我想单击单元格值将我直接带到该工作表,而无需手动搜索 200 多张工作表。简而言之,主工作表将充当 Excel 工作簿其余部分的目录。

标签: excelvba

解决方案


要链接同一工作簿,请使用此格式的公式 =HYPERLINK("[Workbook]Worksheet!A1", "Link Text")。有关详细信息,请参阅在 Excel 中使用超链接

您甚至可以让公式找到工作簿名称,假设工作簿名称和文件路径不包含任何方括号。有关详细信息,请参阅此页面。公式是=HYPERLINK(MID(CELL("filename"), FIND("[",CELL("filename")), (FIND("]",CELL("filename")))-FIND("[",CELL("filename"))+1) &A5 &"!A1", "Link Text")。更改该公式的最后一部分,其中A5是具有工作表名称的单元格,A1是链接的目标,并且Link Text是任何文本或单元格引用。

如果您粘贴带有代码的公式,则使用两个引号将一个引号粘贴到公式中,ActiveCell.Formula = "=HYPERLINK(MID(CELL(""filename""), FIND(""["",CELL(""filename"")), (FIND(""]"",CELL(""filename"")))-FIND(""["",CELL(""filename""))+1) &A5 &""!A1"", ""Link Text"")".

或者...这是一篇关于如何将目录添加到工作簿的帖子。也许您可以保存并运行一个单独的宏。


推荐阅读