2017-02-16 86 views
-1

我是vba的新手。那麼我正在寫一個子程序,像 Sub addcell(ByVal目標作爲範圍)並寫入一些語句。我的查詢是,如何自動運行此過程,而無需執行任何操作,也無需使用命令按鈕。有沒有辦法。請幫我解決一下這個。如何運行子程序

+1

你想要什麼時候運行?看看[工作表事件](https://msdn.microsoft.com/en-us/library/microsoft.office.tools.excel.worksheet_events.aspx) – Tom

回答

2

在Visual Basic編輯器的左側,您有Project Explorer窗格;這會顯示工作簿中的所有對象。您會注意到,在任何工作簿中默認都有至少兩個對象 - 工作簿中每個工作表的ThisWorkbook對象和Sheet對象。您想要自動運行的代碼應放置在ThisWorkbook或適當的Sheet對象中。

enter image description here

如果您在任何工作簿或工作對象的雙擊,你將打開,顯示當前存儲在該對象的代碼的代碼窗口。頁面頂部有兩個下拉菜單,通常默認爲「(常規)」和「(聲明)」。打開「(常規)」下拉列表以獲取對象列表 - 通常您會看到「工作表」或「工作簿」,具體取決於您打開的對象。

enter image description here

選擇對象,那麼,「(聲明)」下拉菜單會給你的事件列表。他們有很多描述性的名字,比如「Change」,「SelectionChange」,「Calculate」,「WorkbookOpen」等等。選擇你想要的事件,並且一個新的子會自動創建。把你的代碼放在這個子內部,並且每當觸發達到時它都會執行。

非常小心。例如,如果您將代碼放入工作表的Change事件中,最終更改工作表,您可以進入工作表的非生產性循環,不斷改變自身並無休止地重新觸發。

+0

只需添加到此 - 您可以避免僅通過遞歸針對特定的單元格或範圍,或通過禁用事件並通過在開始處使用Application.EnableEvents = False並在末尾使用Application.EnableEvents = True來重新啓用 – Tom

+1

謝謝各位。很高興看到它現在工作。請繼續幫助。謝謝你和kadrinchey(謝謝你用不丹語言) – user7561012