请忍受这个总菜鸟。这是我要修改的宏。
Private Sub Workbook_Open()
Sheets("TabList").Select
Range("b5").Activate
Dim sh As Worksheet
Dim cell As Range
For Each sh In ActiveWorkbook.Worksheets
If ActiveSheet.Name <> sh.Name Then
ActiveCell.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
"'" & sh.Name & "'" & "!A1", TextToDisplay:=sh.Name
ActiveCell.Offset(1, 0).Select
End If
Next sh
End Sub
当我打开工作簿时,此宏打开TabList表并从单元格B5开始创建工作簿中所有选项卡的超链接列表。当这个宏运行时,我希望它从每个工作表的特定单元格中提取数据,并将其显示在TabList工作表上超链接名称旁边的列中,从C5开始。
例如,宏中的一个工作表称为Sheet2,并且具有单元格J8,其具有我想在TabList工作表旁边显示的值。如果Sheet2是列表中的第一个工作表,它将位于位置B5,因此Sheet2!J8的值应显示在单元格C5中。我希望从每个连续的工作表读取相同的单元格,并在列表的下一个条目旁边显示。
感谢您的帮助。
答案 0 :(得分:2)
试试这段代码:
Private Sub Workbook_Open()
Dim sh As Worksheet
Dim rng As Range
Dim cell As Range
Dim tabShName As String
tabShName = "TabList"
Sheets(tabShName).Select
Set rng = Range("B5")
For Each sh In ThisWorkbook.Worksheets
If sh.Name <> tabShName Then
rng.Hyperlinks.Add Anchor:=rng, Address:="", SubAddress:= _
"'" & sh.Name & "'" & "!A1", TextToDisplay:=sh.Name
rng.Offset(, 1).Value = sh.Range("J8").Value
Set rng = rng.Offset(1)
End If
Next sh
End Sub