/ / VBAと一致6 Criteria - excel、vba、excel-vba

VBAの一致6 Criteria - excel、vba、excel-vba

スクリプトは、呼び出されたシートの配列を塗りつぶします6弦の "タイガース"。次に、その配列を "Elephants"という異種のシートと比較し、正確に一致するものがあるかどうか教えてください。面倒なコードは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

回答:

回答№1は0

Matchは単一のルックアップ値を必要としますが、配列全体を渡そうとしています。

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"