在VBA中,我想使用SQL语句查询一个Excel表,并将结果输出到另一个Excel表。我需要一些方向来阅读,因为我很困惑。请原谅我一次在一个帖子中提出许多不同的问题,但问题涉及一个主题。
源表。我应该如何查明源数据是查询表还是ListObject表(请原谅我是无知,如果调用ListObjects表不是正确的方法) 。 QueryTables和ListObjects表有什么区别? This explanation并没有阐明它。
如何将正确的连接字符串添加到现有表(是QueryTable还是ListObject表)?
使用 ADO 来完成这项工作有什么好处?如果我通过ADO获得了这个想法,我们会在Excel中自动连接到源表(如果我错了,请纠正我)。这个链接Query Tables (QueryTables) in Excel 2010 with VBA with VBA creating many connections表明ADO不是必需的,而这个链接认为使用它很好:http://itknowledgeexchange.techtarget.com/beyond-excel/say-goodbye-to-querytables/
下面的代码(从here抓取)看起来很简单并且有用:
Sub idee()
ActiveWorkbook.Sheets.Add
With ActiveSheet.QueryTables.Add(“ODBC;DSN=Excel-bestanden;DBQ=E:TheDatabook.xls”,[H1])
.CommandText = “SELECT name, number FROM TheData WHERE number =1″
.Refresh False
End With
End Sub
但是我想在那里使用正确的连接字符串(替换它:ODBC;DSN=Excel-bestanden;DBQ=E:TheDatabook.xls
)并用QueryTable或ListObject表替换命名范围TheData,我想得到输出到QueryTable或ListObject表。