vba:如果在同一個module里編寫多個sub,可以讓它們按編寫順序自動運行嗎?
01-28
vba菜鳥求問,謝謝
首先,想問一下,你所說的這些,是在指在Excel裡面的VBA么?如果是在Excel里,你需要做到以下兩步:
- 如果你寫了多個宏(sub),想讓它們按要求的順序來運行,你可以另外編寫一個宏,用來分別點它們的名(即調用,用call命令)就可以。又或者可以在每個宏的後面,直接調用下一個用到的宏。
- 要使編寫的宏自動運行,就要在工作表中編寫觸髮型的宏,再通過此宏去調用你放在模塊(module)裡面的宏。
樓上Allate已經回答了,我補充個。假如宏非常多,可以如下操作
所有的宏有規律命名,例如有15個,那麼宏依次是
sub hong1,sub hong2,sub hong3......sub hong15最後寫個循環匯總以上所有宏Sub huizong()Dim qFor q = 1 To 15
Application.Run "hong" qNext qEnd Sub運行最後這個匯總宏,你的前15個宏就會依次按順序運行。這個還是有用的。我就做過 報表自動處理可能有幾十步。一步一步點按鈕再等確實太蛋疼。我就乾脆做了一個form並且放了一個列表框 自動順序執行並且返回狀態
高手真多。不過我覺得題主是不是想多了 既然要多個宏順序運行 何必麻煩?直接把所有宏的內容寫在一個過程里不就完了?
可以的
每一個Sub都是一個過程,module你可以理解成一個容器,是存放這些過程的
過程放在這裡就只是放在這裡,不會運行。那麼想讓過程執行,就需要調用或者觸發過程。
比如你說的你有很多個按鈕,點了就執行,這就是一個觸發,類似的觸發還有很多,在VBA的目錄下可以看到。
因為按鈕只能綁定一個宏,那麼你需要新建一個sub,在裡面依順序調用你需要的過程,然後將這個過程綁定到按鈕就行了沒太明白你到底要幹什麼,如果只是為了讓sub按順序運行,如前面人的回答,你必須再寫一個sub,在這個sub裡面執行你指定的sub才行
通過一些繁雜的方法,能。但是產生這麼奇怪的需求題主肯定是哪裡想錯了。
推薦閱讀:
※excel中vba是否能夠將數據填充到網頁中?
※Excel 2013 有哪些不錯的實用應用程序值得推薦?
※Excel如何將兩個表,根據有相同數據的一列數據,自動填寫到另外一張表?
※EXCEL突然有一天打開之後,所有的格式默認設置都變成了日期。如何將默認單元格格式修改成常規?
※有哪些免費非常好用的excel插件值得下載使用?
TAG:MicrosoftExcel | VBA |