如何在vbexcel中从一个模块调用另一个模块中的变量

如何在vbexcel中从一个模块调用另一个模块中的变量,excel,vba,Excel,Vba,第一模块1: Public Sub ConnectTERDATA() Dim fso As Object, _ Fileout As Object, _ Sql As Object, _ objNet As Object, _ FS As Object Set cn = New ADODB.Connection Set cm = New ADODB.Command Set Rec_set = New ADODB.Recordset Set fso = CreateObject("Scripti

第一模块1:

Public Sub ConnectTERDATA()
Dim fso As Object, _
Fileout As Object, _
Sql As Object, _
objNet As Object, _
FS As Object

Set cn = New ADODB.Connection
Set cm = New ADODB.Command
Set Rec_set = New ADODB.Recordset
Set fso = CreateObject("Scripting.FileSystemObject")

Dim ip As String, _
db As String, _
Row As Integer, _
SharepointAddress As String, _
LocalAddress As String, _
UserID As String, _
Pass As String, _
CommandTimeout As Integer, _
ws As Worksheet, _
DS As String

Row = 1
UserID = InputBox(Prompt:="Enter your User ID")
Pass = InputBoxDK(Prompt:="Enter your Password")
cn.ConnectionTimeout = 0 'To wait till the query finishes without generating error
cn.CommandTimeout = 5000
cn.Open "Data Source=TERA; Database=TERA; Persist Security Info=True; User ID=" & UserID & "; Password=" & Pass & "; Session Mode=ANSI;"
'Check for errors...
If cn.State = adStateOpen Then 'If connection is success, continue

MsgBox "Connected to TERADATA"
    End If
End Sub
第二模块2:

Public Sub DisconnectTERDATA()

    Call Module1.cn
    cn.Close


    MsgBox "Disconnected from TERADATA"
    End If
End Sub
但当我从module1调用变量“Cn”时,下面的错误是“预期过程不是Varaibale”,有人能帮我吗


在public Ex中声明变量:

Public Userid as String
Public pass as String

然后我们可以在其他普通模块中使用它

在public Ex中声明您的变量:

Public Userid as String
Public pass as String

然后我们可以在其他普通模块中使用它

您不能“调用变量”,只能在过程中使用。你想实现什么?我想分离一个模块(连接按钮)来连接Teradata,另一个模块(断开按钮)来断开连接。我想你需要的是一个类模块。它允许您定义一个对象(比如“Teradata”),并创建其方法,例如:Teradata.Connect、Teradata.Disconnect。谢谢,如何将用户ID和密码值传递给类模块?为每个要传递的项创建Property Let语句,然后将值分配给实例的那些属性。您不能“调用变量”,只有程序。你想实现什么?我想分离一个模块(连接按钮)来连接Teradata,另一个模块(断开按钮)来断开连接。我想你需要的是一个类模块。它允许您定义一个对象(比如“Teradata”),并创建其方法,例如:Teradata.Connect、Teradata.Disconnect。谢谢,如何将用户ID和密码值传递给类模块?为要传递的每个项创建Property Let语句,然后将值分配给实例的那些属性。