VBA - Kontrollige, kas masinas on väärtus

VBA - Kontrollige, kas masinas on väärtus

Sissejuhatus

Et kontrollida, kas massiivi väärtus on olemas, saame selle elementide kaudu silmus läbi. Siiski on veel üks lahendus! Võite kasutada INDEX () funktsiooni, mis on algupärane Excelis ja kahemõõtmeliste massiivide puhul kasutada INDEX / MATCH funktsiooni kombinatsiooni. Kui aga väärtust ei leita, tagastab rakenduse . Peate arvestama võimalikke vigu ja massiivi muutuja mõõtmeid.

See väike funktsioon aitab teid välja!

Funktsiooni Sobitamine kasutamine

 Funktsioon EstDans (mot nagu string, tabl) kui loogiline

Dim Dimension As Byte, j

Vea jätkamisel Järgmine

Kui IsError (UBound (Tabl, 2)) Seejärel Dimension = 1 Else Dimension = 2

Viga GoTo 0

Valige Case Dimension

1. juhtum

Vea jätkamisel Järgmine

EstDans = Application.Match (mot, Tabl, 0)

Viga GoTo 0

2. juhtum

J = 1 UBoundile (Tabl, 2)

Vea jätkamisel Järgmine

EstDans = Application.Match (mot, Application.Index (Tabl,, j), 0)

Viga GoTo 0

Kui EstDans = True Exit For

Järgmine

Lõpeta valik

Lõppfunktsioon

Funktsiooni käivitamine

 Sub-test ()

Dim Tb (), i As Integer

'tb 2 mõõtmed:

Tb = vahemik ("A2: C16")

Debug.Print EstDans (MaValeur, Tb)

Kustuta Tb

'tb 1 mõõde:

ReDim Preserve Tb (15)

I = 0 kuni 14

Tb (i) = rakud (i + 2, 1)

Järgmine

Debug.Print EstDans (MaValeur, Tb)

Lõpeta alam

Lingi kasutamine

Selle funktsiooni ülesehitus on sarnane Matchiga .

 Funktsioon BoucleSurTabl (mot nagu string, Tb)

Dim dimensioon kui bait, i nii pikk, j nii kaua

Vea jätkamisel Järgmine

Kui IsError (UBound (Tb, 2)) siis Dimension = 1 Else Dimension = 2

Viga GoTo 0

Valige Case Dimension

1. juhtum

J = LBound (Tb) UBoundile (Tb)

Kui Tb (j) = mot Siis BoucleSurTabl = True: Exit Function

Järgmine

2. juhtum

I = LBound (Tb, 1) UBoundile (Tb, 1)

J = LBound (Tb, 2) UBoundile (Tb, 2)

Kui Tb (i, j) = mot Siis BoucleSurTabl = True: Exit Function

Järgmine j

Järgmine i

Lõpeta valik

Lõppfunktsioon

Vaatlused

Kõigi koefitsientide korral saad parema tulemuse silmusfunktsiooniga suurte massiivide puhul kui rakenduse.

2-mõõtmelise massi testimine järgmise vahemikuga ("A1: Y20002").

  • Sobivuse funktsiooni kasutamine: 8.300781 sekundit.
  • Silmus kasutades: 0, 4375 sekundit.

Ühemõõtmelise massiivi testimine:

  • Sobivuse funktsiooni kasutamine: instant
  • Silmus kasutades: 0.015625 sekundit

Lae alla link

  • Saate alla laadida proovi töövihiku: //cjoint.com/?DHfpeqMBvRK
Eelmine Artikkel Järgmine Artikkel

Top Näpunäited