[英]Excel vba auto run macro on workbook open
我有一個Sub WorkSheet_Change(ByVal Target As Range)
,我想為所有用戶自動運行。 問題在於這些用戶在輸入數據時幾乎不了解或不願意啟用宏。 有沒有一種方法可以強制宏在此工作簿上自動運行? 我看過一篇有關事件的文章,稱為Workbook_Open ()
但我不知道如何使用它。 有什么幫助嗎?
出於安全原因,如果沒有用戶的明確輸入,則不能強制工作簿啟用宏。
但是,您可以做的是設置用戶需要隱藏的所有工作表。 然后創建一個僅包含文本框或顯示“請啟用宏才能繼續”的內容的可見工作表。 然后,使用Workbook_Open
事件隱藏該工作表並取消隱藏其他工作表。
此外,在用戶保存電子表格時,請使用Workbook_BeforeSave
事件重新隱藏Workbook_BeforeSave
表,因此必須每次執行檢查。
附加提示:使用VBA隱藏工作表時,請嘗試使用xlSheetVeryHidden
與xlSheetHidden
。 這意味着用戶將無法像普通的隱藏工作表一樣將其從excel中取消隱藏(因此您可以避免使用該漏洞的頑固用戶)。
編輯:這是一些示例代碼,當然還有組成的工作表名稱:
Private Sub Workbook_AfterSave(ByVal Success As Boolean)
Worksheets("Data1").Visible = xlSheetVisible
Worksheets("Data2").Visible = xlSheetVisible
Worksheets("Welcome").Visible = xlSheetVeryHidden
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Worksheets("Welcome").Visible = xlSheetVisible
Worksheets("Data1").Visible = xlSheetVeryHidden
Worksheets("Data2").Visible = xlSheetVeryHidden
End Sub
Private Sub Workbook_Open()
Worksheets("Data1").Visible = xlSheetVisible
Worksheets("Data2").Visible = xlSheetVisible
Worksheets("Welcome").Visible = xlSheetVeryHidden
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.