/ / VBA матч 6 критеріїв - excel, vba, excel-vba

VBA матч 6 критеріїв - excel, vba, excel-vba

Сценарій заповнює масив з аркуша, який викликається"Тигри" з 6 рядків. Потім він повинен порівняти цей масив з різноманітним аркушем під назвою "Слони" і сказати, чи знайде він точну відповідність. Неприємний код знаходиться в методі Application.Match

Будемо вдячні за будь-яку допомогу в розумінні того, як правильно скрипт збігатися з кількома значеннями.

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

Відповіді:

0 для відповіді № 1

Матч вимагає значення єдиного пошуку, але ви намагаєтеся пройти весь масив. Ітератуйте один елемент на час, а не:

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"