我创建了命名范围,涵盖了我需要使用ADODB查询的数据
SourceWB.Names.Add Name:=SOME_RANGE_NAME, RefersTo:=SOME_RANGE
我设置连接运行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
SQL查询
SELECT * FROM [SOME_RANGE_NAME] WHERE ....
问题是:这些命令处于循环中,每次可能有SOME_RANGE_NAME引用的其他范围。如果范围在一张纸上变化,一切都很好。一旦SOME_RANGE_NAME引用其他工作表中的范围,我就会收到以下错误:
没有给出一个或多个必需参数的值
答案 0 :(得分:0)
解决方案是正确关闭连接!