已关闭工作簿的Excel VBA查询
我一直在尝试调整excel VBA查询,以从关闭的工作簿中检索数据作为替代选项。我在网上找到了一个示例代码,并根据自己的需要对其进行了调整。在沮丧了几个小时后,我不太明白为什么它不起作用 当我尝试指定一个表时,出现错误Microsoft access数据库引擎找不到对象“CompanyInFo”。。。我尝试用定义的名称范围替换它,但仍然收到相同的错误 代码如下:已关闭工作簿的Excel VBA查询,excel,export-to-excel,vba,Excel,Export To Excel,Vba,我一直在尝试调整excel VBA查询,以从关闭的工作簿中检索数据作为替代选项。我在网上找到了一个示例代码,并根据自己的需要对其进行了调整。在沮丧了几个小时后,我不太明白为什么它不起作用 当我尝试指定一个表时,出现错误Microsoft access数据库引擎找不到对象“CompanyInFo”。。。我尝试用定义的名称范围替换它,但仍然收到相同的错误 代码如下: Sub DataLookup() Dim str As String Dim Recset As ADODB.Recordset
Sub DataLookup()
Dim str As String
Dim Recset As ADODB.Recordset
Dim query As String
Dim fileName As String
fileName = ActiveWorkbook.Sheets("DataValidation").Range("D18")
str = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & fileName & ";" & _
"Extended Properties=Excel 12.0"
query = "SELECT CompanyName FROM CompanyInFo"
'Tried SELECT [CompanyName].[CompanyInFO] FROM [CompanyInFo]
' SELECT * From [CompanyInFo]
' Works SELECT * FROM [Cell Validation$] <--- Sheet
'Error Prompts here
Set Recset = New ADODB.Recordset
Recset.Open query, str
Cells.Clear
Range("A2").CopyFromRecordset Recset
Dim cell As Range, i As Long
With Range("A1").CurrentRegion
For i = 0 To Recset.Fields.Count - 1
.Cells(1, i + 1).Value = Recset.Fields(i).Name
Next i
.EntireColumn.AutoFit
End With
End Sub
表名为CompanyInFo,位于名为Cell Validation的表上。我想引用一个表,因为列表每天都会更新,有时会添加,有时删除。前面提到过,我确实尝试创建一个动态命名范围,但仍然收到相同的问题
我的想法:
1.我可能错过了一个推荐人?
2.我误用了th ADODB
感谢您的帮助和指导!
亚历克斯我今天早上早些时候看过了。是因为缺少WHERE条款导致了这些问题吗?谢谢你的链接!否,因为您可以使用[Sheet1$]中的*而不使用where子句。我认为这里的问题在于您检索表的方式。您的表格在Excel中仅作为表格/命名区域存在。当你在查询电子表格时,你必须想象一下查询一个由行和列组成的网格,而不是作为对象分开的,比如表好的,我希望指向一个表并从中提取数据会很容易。我想我知道我想怎么做了。让我们看看!谢谢