查询列表对象 VBA 的快速方法



>我使用 excel 2016,需要从列表对象中获取值。有几列。例如三个,我需要获取列 1 中的值,其中列 2=smth,列 3=smth。我怎样才能快速做到这一点?

如果您希望 VBA 中的 SQL 语法和速度,则需要使用 ADO DB 连接器。根据我的经验,它比使用本机 Excel 函数查找数据快 4 倍。

这是一个冗长的话题,需要您阅读多篇文章。比一个 SO 帖子应该容纳的信息要多得多。

下面是一个示例文章: https://technet.microsoft.com/en-us/library/ee692882.aspx

下面是该示例中的代码:

Const adOpenStatic = 3
Const adLockOptimistic = 3
Const adCmdText = &H1

Dim objConnection As Object
Set objConnection = CreateObject("ADODB.Connection")
objConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:ScriptsTest.xls;" & _
"Extended Properties=""Excel 8.0;HDR=Yes;"";"

With CreateObject("ADODB.Recordset")
.Open "Select * FROM [Sheet1$] Where Number = 2", _
objConnection, adOpenStatic, adLockOptimistic, adCmdText

Do Until .EOF
Debug.Print .Fields.Item("Name"), .Fields.Item("Number")

.MoveNext
Loop

.Close
End With

objConnection.Close

最新更新