EXCEL VBA.隱藏重要工作表,檔案開啟時自動複製一份以供填寫
<.准提部林.>
---------------------------------
範例檔簡介:
■主要需求:
工作表〔Sheet(9)〕為〔重要〕的 〔表格範本〕,
平時〔隱藏〕,於檔案開啟時,自動複製一份,以供使用者填寫內容。
■建構方案:
工作表〔Sheet(9)〕須防止被更動,或被刪除,
所以必須有〔保護工作表.保護活頁簿〕雙層措施,
也須防止〔未啟用巨集〕時,可手動叫出而進行操作更改。
故VBA大約須具備如下功能:
<檔案開啟>
自動解開〔保護活頁簿〕,複製工作表,並解除複製新表的保護,
1.此時,還須加一層防護,無法手動叫出 Sheet(9),
一叫出,立即自動隱藏,一般使用者無法對其操作。
2.須提供〔檔案管理者〕可以叫出 Sheet(9) 以進行表格設計,
設計完再隱藏。
<檔案關閉>
恢復〔保護活頁簿〕,自動儲存
<密碼防護>
1.於〔保護工作表.保護活頁簿〕兩種皆須使用密碼 。
2.加設程式碼的〔專案保護〕,以防護以上兩個密碼。
■程式碼1: 以 InputBox 提供〔檔案管理者〕叫出工作表
Public uLockNo&
Sub Sheet9_Show() '快速鍵 Ctrl + V
Dim yy
101: yy = Application.InputBox("請輸入權限密碼")
If CStr(yy) = "False" Then Exit Sub
If Len(yy) = 0 Then MsgBox "密碼未輸入!": GoTo 101
If CStr(yy) <> "1111" Then MsgBox "密碼錯誤!": GoTo 101
uLockNo = 1
With Sheets("Sheet(9)")
.Visible = True
.Select
.Unprotect "0000"
End With
End Sub
■程式碼2:隱藏工作表
Sub Sheet9_Hide() '快速鍵 Ctrl + M
uLockNo = 0
With Sheets("Sheet(9)")
.Protect "0000"
.Visible = False
End With
End Sub
■程式碼3:利用〔活頁簿〕的〔事件程序〕控制
'↓〔檔案關閉〕時:保護活頁簿,儲存
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.Protect "0000"
ThisWorkbook.Save
End Sub
'↓〔檔案開啟〕時:解除保護活頁簿,複製工作表
Private Sub Workbook_Open()
ThisWorkbook.Unprotect "0000"
With Sheets("Sheet(9)")
.Visible = True
.Copy after:=Sheets(Sheets.Count)
ActiveSheet.Unprotect "0000"
.Visible = False
End With
End Sub
'↓〔選取工作表〕時:自動隱藏〔Sheet(9)〕,防止被更改及操作
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If ActiveSheet.Name = "Sheet(9)" And Val(uLockNo) = 0 Then _
ActiveSheet.Visible = False
End Sub
---------------------------------
<範例檔>:
---------------------------------
- Jul 29 Sun 2012 20:00
Excel 複製工作表
close
LV超3A名牌購物網
全站熱搜
留言列表
發表留言