excel vba-从选定范围自动筛选

excel vba-从选定范围自动筛选,vba,excel,Vba,Excel,我正在尝试创建一个自动筛选,其中条件是由工作表上选定的单元格组成的数组 我在想类似的事情 dim crit as variant set crit = selection ' i know this isnt right ActiveSheet.Range("$A$2:$AC$476").AutoFilter Field:=1, Criteria1:=Array(crit), Operator:=xlFilterValues 不过,我不确定如何建立所选单元格的数组,以便作为标准传递。非常感谢

我正在尝试创建一个自动筛选,其中条件是由工作表上选定的单元格组成的数组

我在想类似的事情

dim crit as variant
set crit = selection ' i know this isnt right

ActiveSheet.Range("$A$2:$AC$476").AutoFilter Field:=1, Criteria1:=Array(crit), Operator:=xlFilterValues

不过,我不确定如何建立所选单元格的数组,以便作为标准传递。非常感谢您提供的任何提示。

您需要这样的提示:

Dim crit()                As Variant
Dim n                     As Long
Dim rgCell                As Range

ReDim crit(1 To Selection.Count)

n = 1
For Each rgCell In Selection.Cells
    crit(n) = CStr(rgCell.Value)
    n = n + 1
Next rgCell

ActiveSheet.Range("$A$2:$AC$476").AutoFilter Field:=1, Criteria1:=crit, Operator:=xlFilterValues

这就是你想要的吗

Sub Sample()
    Dim crit As Range
    Dim Ar() As Variant

    '~~> Check if what the user selected is a valid range
    If TypeName(Selection) <> "Range" Then
        MsgBox "Select a range first."
        Exit Sub
    End If

    Set crit = Selection
    Ar = crit.Value

    ActiveSheet.Range("$A$1:$C$7").AutoFilter Field:=1, _
                                              Criteria1:=Application.Transpose(Ar), _
                                              Operator:=xlFilterValues
End Sub
子样本()
暗爆作为射程
Dim Ar()作为变量
“~~>检查用户选择的范围是否有效
如果TypeName(选择)“范围”,则
MsgBox“首先选择一个范围。”
出口接头
如果结束
设置临界值=选择
Ar=临界值
ActiveSheet.Range(“$A$1:$C$7”)。自动筛选字段:=1_
准则1:=应用程序转置(Ar)_
运算符:=xlFilterValues
端接头

+1击败我D