vba中變量作用域


 


全局變量例子
public 變量1 AS Integer
Sub LLL()
變量1 = 1111
End Sub


模塊級變量例子
DIM 變量1 AS Integer
Sub LLL()
變量1 = 1111
End Sub

我有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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM