Board logo

標題: VBA是否有偵測刪除SHEET的事件? [打印本頁]

作者: mtc0611    時間: 2012-6-7 15:26     標題: VBA是否有偵測刪除SHEET的事件?

本帖最後由 mtc0611 於 2012-6-7 18:56 編輯

sorry!已重新上傳檔案

因為使用的分頁眾多,所以另外作一個索引頁內有各頁的超連結
還寫了一個巨集mainRefresh,會自動產生各SHEET的超連結

原本是把巨集丟在SheetActivate
只要切換到首頁就自動刷新一次連結
但分頁變多時只要切到首頁就會變慢

所以改成當SHEET新增或刪除時才會執行mainRefresh
但新增分頁可以用Newsheet事件實現
可是刪除sheet的事件就找不到了
有其他辦法可以作到嗎?
作者: GBKEE    時間: 2012-6-7 16:56

本帖最後由 GBKEE 於 2012-6-7 17:10 編輯

回復 1# mtc0611
檔案 加密 如何交流??
原本是把巨集丟在SheetActivate         加上     xlShCount = Sheets.Count 來判斷是否有刪除 工作表
  1. Option Explicit
  2. Dim xlShCount As Integer
  3. Private Sub Workbook_Open()
  4.     整理
  5. End Sub
  6. Private Sub Workbook_NewSheet(ByVal Sh As Object)
  7.     Application.EnableEvents = False
  8.     If Sheets("頁首").Index <> 1 Then
  9.         Sheets("頁首").Move Sheets(1)
  10.         Sh.Activate
  11.     End If
  12.     整理
  13.     Application.EnableEvents = True
  14. End Sub
  15. Private Sub Workbook_SheetActivate(ByVal Sh As Object)
  16.     If xlShCount <> Sheets.Count Then 整理
  17. End Sub
  18. Private Sub 整理()
  19.     Dim xi As Integer
  20.     With Sheets(1)
  21.         .Columns(1) = ""
  22.         For xi = 2 To Sheets.Count
  23.            .Hyperlinks.Add Anchor:=.Cells(xi, "a"), Address:="", SubAddress:=Sheets(xi).[A1].Address(, , , 1), TextToDisplay:=Sheets(xi).Name
  24.         Next
  25.     End With
  26.     xlShCount = Sheets.Count
  27. End Sub
複製代碼

作者: mtc0611    時間: 2012-6-7 19:28

多謝指教!
原來自已寫的code有些地方是多餘的




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)