首页 > 解决方案 > VBA 我可以使用整数设置名称吗?

问题描述

我想做一个循环,它将按几个类别过滤。我的想法是使用数字进行设置,这样循环起来会更容易。我的想法

For i = 1 to 5
myTable.AutoFilter Field:=10, Criteria1:=i
....
....
Next i

但我必须先声明我的类别,所以我想做类似的事情

1 = "MEN"
2 = "WOMEN"
3 = "KIDS BOY"
4 = "KIDS GIRL"
5 = "UNISEX"

但似乎我不能这样做。那么有没有人对如何循环过滤器或知道如何用整数声明有任何其他想法。谢谢

标签: vbafilterinteger

解决方案


我会做一些类似的事情:

Option Explicit
Sub Filters()

    Dim MyFilter As Variant: MyFilter = setArrayFilters
    Dim i As Long
    For i = LBound(MyFilter) To UBound(MyFilter)
        myTable.AutoFilter Field:=10, Criteria1:=MyFilter(i)
    Next i
    
End Sub
Private Function setArrayFilters() As Variant
    
    Dim x As Long: x = 5 'change this to redimension your array
    Dim arr(1 To x)
    arr(1) = "MEN"
    arr(2) = "WOMEN"
    arr(3) = "KIDS BOY"
    arr(4) = "KIDS GIRL"
    arr(5) = "UNISEX"
    setArrayFilters = arr
    
End Function

推荐阅读