vba中變量作用域
阿新 • • 發佈:2017-08-30
標準 運行 ring ref cin box http stat 打開
參考:http://club.excelhome.net/thread-1237085-1-1.html
參考:http://www.excelpx.com/thread-334103-1-1.html我有a、b、c三個宏模塊,每個裏面都有一個變量 dim sj as date, 這三個模塊使用時都會調用另外一個模塊d模塊,怎麽才能a、b、c每個模塊調用d模塊時,都能把變量sj傳遞到d模塊呢?
全局變量例子 public 變量1 AS Integer Sub LLL() 變量1 = 1111 End Sub 模塊級變量例子 DIM 變量1 AS Integer Sub LLL() 變量1 = 1111 End Sub |
參考:http://www.excelpx.com/thread-334103-1-1.html
我有a、b、c三個宏模塊,每個裏面都有一個變量 dim sj as date, 這三個模塊使用時都會調用另外一個模塊d模塊,怎麽才能a、b、c每個模塊調用d模塊時,都能把變量sj傳遞到d模塊呢?
我現在a模塊sub 上面最上一行 寫上Public sj As Date 後,a模塊運行sj變量可以傳遞到d模塊
當我把a、b、c每個模塊sub上面最上一行都加上Public sj As Date 後,每個模塊運行到d模塊後,就會出錯,提示:發現二義性名稱
請問各位老師,該怎麽弄才能讓a、b、c三個模塊sj變量都能傳遞到d模塊呢?
最後總算解決了:abc三個模塊,不管哪個模塊,運不運行,只需在任意一個(也只能一個)上面加個全局變量 Pablic就可以了
我是2個以上模塊都加了相同的全局變量出問題的。
模塊級變量應該放在本模塊的最上端,不是在過程中,下面兩句會出錯
Dim x As String
x = "user"
如果該模塊為標準模塊,可以這樣試試:
Dim x As String
Sub auto_open() ‘打開工作簿自動運行
x = "user"
End Sub
Sub abc()
MsgBox x
End Sub
vba中變量作用域