VBA:查询动态命名范围内的数据

时间:2017-09-21 16:10:24

标签: vba adodb

  1. 我创建了命名范围,涵盖了我需要使用ADODB查询的数据

    SourceWB.Names.Add Name:=SOME_RANGE_NAME, RefersTo:=SOME_RANGE
    
  2. 我设置连接运行SQL查询

    sConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & sSourceName_ & "; Extended Properties=""Excel 12.0 Macro;HDR=YES"";" 
    Set oConn_ = New ADODB.Connection
    oConn_.Open sConn
    
    Dim oRs As New ADODB.Recordset
    oRs.Open sSQL, oConn_, adOpenStatic, adLockReadOnly, adCmdText
    
  3. SQL查询

    SELECT * FROM [SOME_RANGE_NAME] WHERE ....
    

    问题是:这些命令处于循环中,每次可能有SOME_RANGE_NAME引用的其他范围。如果范围在一张纸上变化,一切都很好。一旦SOME_RANGE_NAME引用其他工作表中的范围,我就会收到以下错误:

      

    没有给出一个或多个必需参数的值

1 个答案:

答案 0 :(得分:0)

解决方案是正确关闭连接!