VBA-从嵌套查询创建筛选条件
我正在尝试创建一个筛选条件来检查数据,如果它匹配,那么它将打印数据。 我有以下错误,我得到类型不匹配错误。为了测试。 我还尝试了以下不带引号的方法,但它返回false:cTest=insTargetNameivar,a1>0 是否有更简单的方法来创建筛选条件 如果填写了字段a1、a2和a3,则在返回任何内容之前,标准应检查该值是否包含所有内容VBA-从嵌套查询创建筛选条件,vba,if-statement,nested,Vba,If Statement,Nested,我正在尝试创建一个筛选条件来检查数据,如果它匹配,那么它将打印数据。 我有以下错误,我得到类型不匹配错误。为了测试。 我还尝试了以下不带引号的方法,但它返回false:cTest=insTargetNameivar,a1>0 是否有更简单的方法来创建筛选条件 如果填写了字段a1、a2和a3,则在返回任何内容之前,标准应检查该值是否包含所有内容 Dim cTest As Variant If a1 <> "" Or a2 <> "" Or a3 <> ""
Dim cTest As Variant
If a1 <> "" Or a2 <> "" Or a3 <> "" Then
If a1 <> "" Then
If a2 <> "" Then
If a3 <> "" Then
'Value entered in 1,2,3
cTest = "(InStr(getName(iVar), a1) > 0) And (InStr(getName(iVar), a2) > 0) And (InStr(getName(iVar), a3) > 0)"
End If
' Value entered in 1,2
cTest = "(InStr(getName(iVar), a1) > 0) And (InStr(getName(iVar), a2) > 0)"
End If
'(Value entered in 1 only
cTest = "(InStr(getName(iVar), a1) > 0)"
ElseIf a2 <> "" Then
If a3 <> "" Then
'Value entered in 2,3
MsgBox ("2nd, 3rd value entered")
End If
' Value entered in 2 only
ElseIf a3 <> "" Then
'Value entered in 3 only
MsgBox ("3rd value entered")
Else
' no value entered
MsgBox ("no value entered")
End If
End If
For iVar = 1 To Phrases.MaxIndex()
If (cTest) Then
'We want this one
.Cells(irow, 1).Value = getName(iVar)
irow = irow + 1
End If
Next iVar
End With
使用AND&OR条件的简单连接如何
Sub testing()
If ((a1 <> "" And InStr(getName(iVar), a1) > 0) Or a1 = "") And _
((a2 <> "" And InStr(getName(iVar), a2) > 0) Or a2 = "") And _
((a3 <> "" And InStr(getName(iVar), a2) > 0) Or a3 = "") Then
' the wanted one
End If
End Sub
我想知道这是否也是一种方式。永远不要认为条件可以像这样动态生成。这只会在填写a1、a2和a3时提供结果吗?也许我错过了什么不,那部分还是a1=