我使用excel 2016,需要从列表对象获取值。有几列。例如第三,我需要在column1 = column3 = smth的列中获取值。我该怎么做呢?
答案 0 :(得分:1)
如果要在VBA中使用SQL语法和速度,则需要使用ADO DB连接器。以我的经验,它比使用本机Excel函数查找数据快4倍。
这是一个冗长的主题,需要您阅读多篇文章。信息远不止于一个SO职位。
这是示例文章: https://technet.microsoft.com/en-us/library/ee692882.aspx
这是该示例中的代码:
On Error Resume Next
Const adOpenStatic = 3
Const adLockOptimistic = 3
Const adCmdText = &H0001
Set objConnection = CreateObject("ADODB.Connection")
Set objRecordSet = CreateObject("ADODB.Recordset")
objConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\Scripts\Test.xls;" & _
"Extended Properties=""Excel 8.0;HDR=Yes;"";"
objRecordset.Open "Select * FROM [Sheet1$] Where Number = 2", _
objConnection, adOpenStatic, adLockOptimistic, adCmdText
Do Until objRecordset.EOF
Wscript.Echo objRecordset.Fields.Item("Name"), _
objRecordset.Fields.Item("Number")
objRecordset.MoveNext
Loop