/ / VBA match 6 Kritériá - excel, vba, excel-vba

Súlad VBA 6 Kritériá - excel, vba, excel-vba

Skript vyplní pole zo zoznamu nazývaného"Tygři" s 6 strunami. Potom sa má porovnať toto pole s rozdielnym hárkom s názvom "Slony" a povedzte mi, či nájde presnú zhodu. Nepríjemný kód nájdete v metóde Application.Match

Akákoľvek pomoc pri porozumení, ako správne skriptovať zhodu s viacerými hodnotami, by bola ocenená.

Sub matchData()

Dim arrCompare(5) As Variant
Dim intRow As Integer
Dim varRes As Variant

Set sht = ActiveSheet
Set shtTigers = Worksheets("Tigers").Range("A2:A100")
Set shtElephants = Worksheets("Elephants").Range("A2:A100")

Sheets("Elephants").Activate

For intRow = 2 To 100

arrCompare(0) = Worksheets("Elephants").Cells(intRow, 1).Value
arrCompare(1) = Worksheets("Elephants").Cells(intRow, 2).Value
arrCompare(2) = Worksheets("Elephants").Cells(intRow, 4).Value
arrCompare(3) = Worksheets("Elephants").Cells(intRow, 5).Value
arrCompare(4) = Worksheets("Elephants").Cells(intRow, 7).Value
arrCompare(5) = Worksheets("Elephants").Cells(intRow, 9).Value

"compare all 6 strings in array against Elephant sheet rows for a match
varRes = Application.Match(arrCompare(), shtTigers, 0)

"also tried
"varRes = Application.Match(((arrCompare(0))*((arrCompare(1))*((arrCompare(2)) * ((arrCompare(3)) * ((arrCompare(4)) * ((arrCompare(5))*((arrCompare(6)),shtTigers, 0)

"messagebox just gives a Error 13 or 2042 for varRes
MsgBox ("varRes = " & varRes)

Next

End Sub

odpovede:

0 pre odpoveď č. 1

Zhoda vyžaduje jednu vyhľadávaciu hodnotu, ale snažíte sa prejsť celým array.Iterrate jeden prvok v čase miesto:

Dim counter as Integer

For x = 0 to 5
If Not IsError(Application.Match(arrCompare(x), shtTigers, 0)) Then
counter = counter + 1
End If
Next x

If counter = 6 Then Debug.Print "Matches found"