一意のIDのすべての値を返す、異なるシートでの複数の一致のマクロが必要です。
- シート1には一意のIDと値が含まれているため、値が重複している可能性があります。
- もう一方のシートでは、値が重複している可能性があり、各繰り返し値に対応する値が評価されます
- 出力として、1つの一意のIDに対応するすべての値が必要です。
Sheet1の内容
id1 isin1
id2 isin1
id3 isin2
id4 isin3
Sheet2の内容:
isin1 value1 age1
isin1 value2 age2
isin2 value3 age3
isin3 value4 age4
isin3 value5 age5
isin1 value6 age6
isin3 value7 age7
<U>Output</U>
id1 isin1 value1 age1
id1 isin1 value2 age2
id1 isin1 value6 age6
id2 isin1 value1 age1
id2 isin1 value2 age2
id2 isin1 value6 age6
id3 isin2 value3 age3
id4 isin3 value4 age4
id4 isin3 value5 age5
id4 isin3 value7 age7
これをプログラミングしてみましたが、エラーが発生しました。
2つの配列ie(range1&range2)をループし、すべての値を別の配列(range3)に格納しようとしました。
プログラムの実行中に、実行時に424オブジェクトエラーが発生します。
別の配列で希望の方法で値を取得するにはどうすればよいですか?
Option Explicit
Sub test()
Dim varSheetA As Variant
Dim varSheetB As Variant
Dim varSheetC As Variant
Dim strRangeToCheck1 As String
Dim strRangeToCheck2 As String
Dim strRangeToCheck3 As String
Dim iRow1 As Long
Dim iCol1 As Long
Dim iRow2 As Long
Dim iCol2 As Long
Dim iRow3 As Long
Dim iCol3 As Long
strRangeToCheck1 = "A1:B5"
strRangeToCheck2 = "D1:E6"
strRangeToCheck3 = "f1:h22"
Debug.Print Now
varSheetA = Worksheets("Sheet1").Range(strRangeToCheck1)
varSheetB = Worksheets("Sheet1").Range(strRangeToCheck2)
varSheetC = Worksheets("Sheet1").Range(strRangeToCheck3)
Debug.Print Now
For iRow1 = LBound(varSheetA, 1) To UBound(varSheetA, 1)
For iCol1 = LBound(varSheetA, 2) To UBound(varSheetA, 2)
For iRow2 = LBound(varSheetA, 1) To UBound(varSheetA, 1)
For iCol2 = LBound(varSheetA, 2) To UBound(varSheetA, 2)
If varSheetA(iRow1, 2) = varSheetB(iRow2, 1) Then
varSheetC(iRow1, 1).Value = varSheetA(iRow1, 1).Value " Here i am getting 424 runtime error"
Else
End If
Next iCol2
Next iRow2
Next iCol1
Next iRow1
End Sub