创建到新工作表的超链接

时间:2019-09-27 19:44:30

标签: excel vba

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

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

这是代码段:

    '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工作簿其余部分的目录。

1 个答案:

答案 0 :(得分:0)

要在同一工作簿中进行链接,请使用具有以下格式的公式= HYPERLINK(“ [Workbook] Worksheet!A1”,“链接文本”)。有关更多信息,请参见Work with hyperlinks in Excel

假设工作簿名称和文件路径不包含任何方括号,您甚至可以使公式查找工作簿名称。有关更多信息,请参见this page。公式为=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"")"中粘贴一个引号。

或... 这是有关如何add a table of contents to your workbook的帖子。也许您可以保存并运行一个单独的宏。

相关问题