从函数返回时未设置对象变量或块变量

时间:2013-02-13 05:31:46

标签: vba excel-vba excel

为什么我使用以下代码收到 Object变量或With block变量未设置错误:

Function GetConnection() As ADODB.Connection
    'Create connection to worksheet
    Dim cn As ADODB.Connection
    Set cn = New ADODB.Connection
    cn.Provider = "Microsoft.Jet.OLEDB.4.0"
    cn.ConnectionString = "Data Source=" & ThisWorkbook.FullName & ";" & "Extended Properties=Excel 8.0;"
    cn.Open
    GetConnection = cn
End Function

我已将对象声明为'cn',正确初始化它,然后在返回之前设置一些属性并打开它。

我在GetConnection = cn行收到错误。

1 个答案:

答案 0 :(得分:9)

如果内存对我有用......在使用经典vb中的引用类型(对象)时,需要使用'set'关键字

即:

Set GetConnection = cn

这适用于所有作业,而不仅仅是函数返回语句。