VBA中怎样定义了string全局变量?

已用Public a as string定义。
但是在一个窗体里赋值后,如 a = "abc", 在另一个过程中,a不等于abc。
是否要分配内存?

    主工作簿模块中

    Public gstrA As String
    Sub Macro1()
        MsgBox "现在执行的是主工作簿中的Macro1,为主工作簿中的全局变量gstrA赋值,gstrA = ""我是gstrA"
        gstrA = "我是gstrA"
    End Sub

    加载宏模块中:

    Sub 测试()
        Application.Run "主工作薄.xls!Macro1"
        MsgBox "现在测试加载宏程序显示主工作薄中定义的全局变量" & gstrA
       
        MsgBox "没有显示全局变量gstrA,说明不同工程的全局变量不能传递"
    End Sub

     

温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-09-08
不能在窗体中定义,必须在模块中用Public a as string定义。本回答被提问者采纳
第2个回答  2009-09-08
你得在模块中定义,那里定义是全局的。
相似回答