使用IF并在Excel VBA中评估如何在列的运行时单元格数据中转换为文本中以根据用户的输入过滤数据?我在这里发布了类似的查询
这是发布的问题:
如果varpin =" 083",则具有下面的自动移动器,带有pincodes" 600 083"的过滤记录。但是,如果VARPIN =" 083",则此自动滤波器不会用Pincodes" 600083"过滤记录。代码:
Dim varPin As String
Dim PinWithWildCard As String
Dim rng As Range
Set rng = ActiveSheet.Range("D1:Q100") 'D has Names. Q has Email IDs.
varPin = "083"
PinWithWildCard = "*" & varPin & "*"
rng.AutoFilter Field:=10, Criteria1:=PinWithWildCard 'field number is from the one set in rng and has PinCodes
我检查了具有这些质子的单元格的格式,它们通常设置为并在左侧对齐。我还尝试了PinWithWildCard =" = "&Varpin&" ",但它行不通。请建议如何使该过滤器数字设置为一般空间和没有空间的设置。谢谢。
如果您使用的数据集不是那么大的数据集,则可以尝试以下操作:
Sub Sample()
Dim myfilter() As String, varpin As String, PinWithWildCard as String
Dim rng As Range, cel As Range
Set rng = ActiveSheet.Range("$D$1:$Q$100")
ReDim myfilter(0 To 0)
varpin = "083"
PinWithWildCard = "*" & varpin & "*"
ActiveSheet.AutoFilterMode = False
For Each cel In rng
If cel.Value Like PinWithWildCard Then
myfilter(UBound(myfilter)) = cel.Value
ReDim Preserve myfilter(0 To UBound(myfilter) + 1)
End If
Next cel
rng.AutoFilter field:=10, Criteria1:=myfilter, Operator:=xlFilterValues
End Sub
上面用 O83
过滤所有值。
希望这对您有用。:)