我有一个包含Sheet1.Range(A1:A10)中的值的数组。
打开记录集后,我想根据数组中的值过滤数据。这有可能吗?
由于
答案 0 :(得分:1)
这对于评论来说太长了,所以这里有一些我使用的函数(这假设字符串作为标准):
Function GetStringInList(rngCriteria As Range) As String
Dim rngCell As Range
Dim strTemp As String
For Each rngCell In rngCriteria.Cells
If Len(rngCell.Value) > 0 Then strTemp = strTemp & ",'" & DoubleQuotes(rngCell.Value) & "'"
Next rngCell
' now strip off leading comma
GetStringInList = Mid$(strTemp, 2)
End Function
Function DoubleQuotes(strIn As String) As String
DoubleQuotes = Replace(strIn, "'", "''")
End Function
所以在构建SQL时你可以使用类似的东西:
strSQL = strSQL & " WHERE [FieldName] In " & GetStringInList(Range("A1:A10"))