/ / VBA-Übereinstimmung 6 Kriterien - Excel, VBA, Excel-Vba

VBA-Übereinstimmung 6 Kriterien - Excel, VBA, Excel-VBA

Das Skript füllt ein Array aus einem Arbeitsblatt mit dem Namen"Tiger" mit 6 Saiten. Dann soll es dieses Array mit einem anderen Blatt mit dem Titel "Elephants" vergleichen und sagen, ob es eine genaue Übereinstimmung findet. Der problematische Code wird in der Application.Match-Methode gefunden

Wenn Sie wissen möchten, wie Sie eine Übereinstimmung mit mehreren Werten richtig schreiben können, würden wir uns freuen.

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

Antworten:

0 für die Antwort № 1

Match erfordert einen einzelnen Lookup-Wert, aber Sie versuchen, das gesamte Array zu übergeben. Wiederholen Sie stattdessen ein Element:

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"