Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


2190 / 13645 ツリー ←次へ | 前へ→

【69478】配列とセルを比較したい vba初心者 11/7/19(火) 21:21 質問[未読]
【69479】Re:配列とセルを比較したい neptune 11/7/19(火) 21:40 発言[未読]

【69478】配列とセルを比較したい
質問  vba初心者 E-MAIL  - 11/7/19(火) 21:21 -

引用なし
パスワード
   皆様、お世話になっております。
いつも拝見させていただいています。

まだ初心者で、よく型の不一致やオブジェクト定義エラーなどで躓きます。
このたびの質問もその手のものですが、なぜそのようなエラーになるか、わかりません。オブジェクト類の整合性は確保していると思っています。
以下にコードの一部を記載させていただきますので、お分かりの方はご返信いただけますと非常に助かります。

コードの目的-------------
・シート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


どなたかご指導をお願いいたします。

【69479】Re:配列とセルを比較したい
発言  neptune  - 11/7/19(火) 21:40 -

引用なし
パスワード
   ▼vba初心者 さん:
辺りかどうかわかりませんけど、
省略可能な既定のプロパティも省略せずに書いてみましょう。

2190 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free