VBA - Pārbaudiet, vai masīvā ir vērtība
VBA - Pārbaudiet, vai masīvā ir vērtība
Ievads
Lai pārbaudītu, vai masīvā ir vērtība, mēs varam izlaist tās elementus. Tomēr ir vēl viens risinājums! Jūs varat izmantot INDEX () funkciju, kas ir dabiska Excel, un divdimensiju masīvu gadījumā izmantojiet INDEX / MATCH funkcijas kombināciju. Tomēr, ja vērtība nav atrasta, Application.Match atgriež kļūdu. Jums būs jāņem vērā iespējamās kļūdas, kā arī masīva mainītāja izmēru skaits.Šī mazā funkcija palīdzēs jums!
Funkcijas Match izmantošana
Funkcija EstDans (mot kā String, Tabl) Kā BūlaDim dimensija kā baits, j kā pilnīgs
Pēc kļūdas atsākšanas
Ja IsError (UBound (Tabl, 2)) Tad Dimension = 1 Else Dimension = 2
Kļūdā GoTo 0
Izvēlieties lietas izmēru
1. gadījums
Pēc kļūdas atsākšanas
EstDans = Application.Match (mot, Tabl, 0)
Kļūdā GoTo 0
2. gadījums
Par j = 1 UBound (Tabl, 2)
Pēc kļūdas atsākšanas
EstDans = Application.Match (mot, Application.Index (Tabl,, j), 0)
Kļūdā GoTo 0
Ja EstDans = True tad iziet
Nākamais
Beigu izvēle
Beigu funkcija
Funkcijas aktivizēšana
Sub tests ()Dim Tb (), i As Integer
'tb 2 izmēri:
Tb = diapazons ("A2: C16")
Debug.Print EstDans (MaValeur, Tb)
Dzēst Tb
'tb 1 dimensija:
ReDim Preserve Tb (15)
Par i = 0 līdz 14
Tb (i) = šūnas (i + 2, 1)
Nākamais
Debug.Print EstDans (MaValeur, Tb)
Beigt Sub
Izmantojot cilpu
Šīs funkcijas struktūra ir līdzīga tam, kas tiek izmantots, izmantojot Match .Funkcija BoucleSurTabl (mot kā virkne, Tb)Dim dimensija kā baits, i tik garš, j kā garš
Pēc kļūdas atsākšanas
Ja IsError (UBound (Tb, 2)) Tad Dimension = 1 Else Dimension = 2
Kļūdā GoTo 0
Izvēlieties lietas izmēru
1. gadījums
Par j = LBound (Tb) uz UBound (Tb)
Ja Tb (j) = mot Tad BoucleSurTabl = True: Iziet funkcija
Nākamais
2. gadījums
Par i = LBound (Tb, 1) UBound (Tb, 1)
Par j = LBound (Tb, 2) UBound (Tb, 2)
Ja Tb (i, j) = mot Tad BoucleSurTabl = True: Iziet funkcija
Nākamais j
Nākamais i
Beigu izvēle
Beigu funkcija
Novērojumi
Atkarībā no visiem izredzes jūs iegūsiet labāku rezultātu ar cilpas funkciju lielos blokos, nekā izmantojot programmu Application.Match.Divdimensiju masīva testēšana ar šādu diapazonu ("A1: Y20002").
- Funkcijas Match izmantošana: 8.300781 sekundes.
- Izmantojot cilpu: 0, 4375 sekundes.
Viendimensiju masīva pārbaude:
- Funkcijas Match izmantošana: tūlīt
- Izmantojot cilpu: 0.015625 sekundes
Lejupielādes saite
- Jūs varat lejupielādēt parauga darbgrāmatu: //cjoint.com/?DHfpeqMBvRK