首頁>技術>

Private Sub Worksheet_Activate()

Dim sh As Worksheet

Dim a As Integer

Dim R As Integer

R = Sheet1.[A65536].End(xlUp).Row

a = 2

If Sheet1.Cells(2, 1) <> "" Then

Sheet1.Range("A2:A" & R).ClearContents

End If

For Each sh In Worksheets

If sh.CodeName <> "Sheet1" Then

Sheet1.Cells(a, 1).Value = sh.Name

a = a + 1

End If

Next

End Sub

程式碼解析:

工作表的Activate事件,在“目錄”工作表啟用時自動建立工作簿中除“目錄”工作表外所有工作表的目錄。

第2、3、4行程式碼宣告變數型別。

第5行程式碼取得A列最後非空單元格的行號。

第6行程式碼設定變數a的初始值為2,從A2單元格開始建立工作表目錄。

第7行到第9行程式碼判斷是否存在工作表目錄,如果存在先清空原來的目錄,以便更新目錄。

第10行到第15程式碼遍歷工作簿的所有工作表,將除“目錄”工作表外所有工作表的名稱寫入到A列單元格中。

為了建立到各工作表的連結,使用工作表的SelectionChange事件,如下面的程式碼所示。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim R As Integer

R = Sheet1.[A65500].End(xlUp).Row

On Error Resume Next

If Target.Count = 1 Then

If Target.Column = 1 Then

If Target.Row > 1 And Target.Row <= R Then

Sheets(Target.Value).Select

End If

End If

End If

End Sub

程式碼解析:

工作表的SelectionChange事件,當選擇A列工作表目錄中工作表名稱時自動選擇該單元格所對應的工作表。

第5、6、7行程式碼限制該事件觸發的條件。

第8行程式碼選擇單元格所對應的工作表。

“目錄”工作表啟用後自動在A列建立工作簿中除“目錄”工作表以外所有表的目錄,如圖所示。

21
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 在Windows 10上安裝Python和Jupyter