查找在A列中input其名称的工作表并将其超链接

我正在制作一个程序,它将创build新的工作表并使其成为超链接。 目前我正面临一个小问题。

这是我的代码:

Dim wks As Worksheet Dim row2 As Integer row2 = 10 For Each wks In Worksheets Select Case LCase(wks.Name) Case "summary-nca", "summary-gh-sample", "summary-ch-sample", "coa ledger" Debug.Print "Skipping " & wks.Name Case Else wks.Hyperlinks.Add ws.Cells(row2, 1), "", "'" & wks.Name & "'!A10", , wks.Name row2 = row2 + 1 End Select Next wks 

在这段代码中,它跳过了一些特定的表单。 我需要修改,以便在工作表A列中有一个列表。 程序应该与工作簿中的图表名称匹配,然后超链接它。

我解释你的问题意味着超链接应该在列表本身。

 Sub hlws() Dim wks As Worksheet, mtch As Variant On Error Resume Next With Worksheets("Sheet1") With .Range(.Cells(2, "A"), .Cells(Rows.Count, "A").End(xlUp)) '<~~ define the WS list range!!! .Hyperlinks.Delete For Each wks In Worksheets mtch = Application.Match(wks.Name, .Columns(1), 0) If Not IsError(mtch) Then .Hyperlinks.Add Anchor:=.Cells(mtch, "A"), _ Address:="", _ SubAddress:=Chr(39) & .Cells(mtch, "A").Value2 & "'!$A$1", _ TextToDisplay:=.Cells(mtch, "A").Value2 End If Next wks End With End With End Sub 

这大致上复制了你自己的代码,增加了一个WorksheetFunction对象 MATCH函数来validation工作表是否存在于列表中。 确保在运行该过程之前正确设置列表范围。

此代码为我工作。 它会将超链接列表写入一个名为“Main”的选项卡,您可以随时更改这个选项卡,或者只是放入工作表对象“ws”的值(这不会显示在代码中,也不是声明) :

 Option Explicit Sub Macro1() Dim wks As Worksheet Dim row2 As Integer Dim ws As Worksheet row2 = 10 Set ws = Sheets("Main") For Each wks In Worksheets Select Case LCase(wks.Name) Case "main", "summary-gh-sample", "summary-ch-sample", "coa ledger" Debug.Print "Skipping " & wks.Name Case Else wks.Hyperlinks.Add ws.Cells(row2, 1), "", "'" & wks.Name & "'!A10", , wks.Name row2 = row2 + 1 End Select Next wks End Sub