|
皆様、お世話になっております。
いつも拝見させていただいています。
まだ初心者で、よく型の不一致やオブジェクト定義エラーなどで躓きます。
このたびの質問もその手のものですが、なぜそのようなエラーになるか、わかりません。オブジェクト類の整合性は確保していると思っています。
以下にコードの一部を記載させていただきますので、お分かりの方はご返信いただけますと非常に助かります。
コードの目的-------------
・シート1とシート2を、一つのキー項目で突合させ、その他の項目を比較させたい。(キー項目自体がどちらかに存在しない場合もある。)
前提---------------------
・すでにシート(1)(2)には値が入力済み
・躓いている個所は、シート1のデータを配列(Variant)に代入後、キーを検索して、ヒットした場合にその前後の項目をifステートメントにて比較する所。
以下コード一部-----------
'nbはアクティブブック
'aLRは比較対象1の最後の行(long型)
Dim SeekPF As Variant
Dim Unhit() As String, Seachcell As Range, SeachRow As Long, ER As Long
Dim c as long
ER = nb.Worksheets(1).Range("A65536").End(xlUp).Row
Worksheets(1).Select
SeekPF = nb.Worksheets(1).Range(Cells(2, 2), Cells(ER, 5))'配列に全値を代入
c = 1
For i = 1 To aLR
Set Seachcell = nb.Worksheets(2).Columns("C:C").Find(what:=SeekPF(i, 2))
If Seachcell Is Nothing Then
ReDim Preserve Unhit(1 To UBound(Unhit) + 1)
Unhit(UBound(Unhit)) = SeekPF(i, 2)
Else
SeachRow = Seachcell.Row
If nb.Worksheets(2).Range(SeachRow, 2) <> SeekPF(i, 1) Or _
nb.Worksheets(2).Range(SeachRow, 4) <> SeekPF(i, 3) Or _
nb.Worksheets(2).Range(SeachRow, 5) <> SeekPF(i, 4) Then
'上記のifステートメントで型が不一致のエラーが発生します!!
nb.Worksheets(3).Range("A1").Offset(c) = Seachcell
End If '封入PF項目全合致の処理は省略
End If
Next i
どなたかご指導をお願いいたします。
|
|