上下文清单

时间:2018-03-15 12:43:25

标签: excel vba excel-vba

以下代码列出了工作表:

Sub Listofcontent()

Dim objSheet As Worksheet
Dim intRow   As Integer
Dim strCol   As Integer
Dim GCell As Range

SearchText = "Content"
Set GCell = Worksheets("Front page").Cells.Find(SearchText).Offset(2, 0)

GCell.End(xlDown).ClearContents

intRow = GCell.Row
strCol = GCell.Column

For Each objSheet In ActiveWorkbook.Sheets
    ActiveWorkbook.Worksheets("Front page").Hyperlinks.Add Anchor:=ActiveWorkbook.Worksheets("Front page").Cells(intRow, strCol), Address:="", SubAddress:= _
    "'" & objSheet.name & "'!A1", TextToDisplay:=objSheet.name
        With ActiveWorkbook.Worksheets("0.0 Forside").Cells(intRow, strCol).Font
            .name = "Calibri"
            .FontStyle = "Normal"
            .Size = 11
            .Strikethrough = False
            .Superscript = False
            .Subscript = False
            .OutlineFont = False
            .Shadow = False
            .Underline = xlUnderlineStyleNone
            .ThemeColor = xlThemeColorLight1
            .TintAndShade = 0
            .ThemeFont = xlThemeFontMinor
        End With
    intRow = intRow + 1
Next objSheet
End Sub

现在有效。谢谢。但是,我希望它在添加,删除,重命名,移动,复制工作表时运行。我将其添加到工作簿代码窗格中:

Private Sub Workbook_NewSheet(ByVal Sh As Object)
    Application.EnableEvents = False
    Listofcontent
    Application.EnableEvents = True
End Sub

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    Application.EnableEvents = False
    Listofcontent
    Application.EnableEvents = True
End Sub

1 个答案:

答案 0 :(得分:0)

更改此

For Each objSheet In ActiveWorkbook.Sheets.Count

For Each objSheet In ActiveWorkbook.Sheets