簡體   English   中英

在工作簿上打開Excel VBA自動運行宏

[英]Excel vba auto run macro on workbook open

我有一個Sub WorkSheet_Change(ByVal Target As Range) ,我想為所有用戶自動運行。 問題在於這些用戶在輸入數據時幾乎不了解或不願意啟用宏。 有沒有一種方法可以強制宏在此工作簿上自動運行? 我看過一篇有關事件的文章,稱為Workbook_Open ()但我不知道如何使用它。 有什么幫助嗎?

出於安全原因,如果沒有用戶的明確輸入,則不能強制工作簿啟用宏。

但是,您可以做的是設置用戶需要隱藏的所有工作表。 然后創建一個僅包含文本框或顯示“請啟用宏才能繼續”的內容的可見工作表。 然后,使用Workbook_Open事件隱藏該工作表並取消隱藏其他工作表。

此外,在用戶保存電子表格時,請使用Workbook_BeforeSave事件重新隱藏Workbook_BeforeSave表,因此必須每次執行檢查。

附加提示:使用VBA隱藏工作表時,請嘗試使用xlSheetVeryHiddenxlSheetHidden 這意味着用戶將無法像普通的隱藏工作表一樣將其從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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM