VBA Могу ли я установить имя, используя целое число? - PullRequest
0 голосов
/ 04 августа 2020

Я хочу сделать цикл, в котором он будет фильтровать по нескольким категориям. Моя идея заключалась в том, чтобы использовать числа, чтобы было легче l oop. Моя идея

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"

Но, похоже, я не могу этого сделать. Есть ли у кого-нибудь другие идеи о том, как l oop фильтровать или как объявлять с целыми числами. Спасибо

1 Ответ

1 голос
/ 04 августа 2020

Я бы сделал что-нибудь вроде:

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
...