• ベストアンサー

エクセルVBAで困ってます。

エクセルVBAで困っています。 データ入力済みのシートが2つあります。 シート名を「Sheet1」「Sheet2」とします。 「Sheet1」のA列のデータが「Sheet2」のA列のデータと一致した時に それぞれのシートのセル番地を取得したいのですが出来ません。 教えて下さい。 データの並び順は「Sheet1」と「Sheet2」で異なります。

質問者が選んだベストアンサー

  • ベストアンサー
  • pkh4989
  • ベストアンサー率62% (162/260)
回答No.1

お早うございます。 こんな感じで、如何でしょうか。 Sub セルの番地取得()   Dim wR   As Long   Dim wI   As Long   Dim wRng  As Range   Dim wfnd  As Range   '   'Sheet2のRange設定   With Worksheets("Sheet2")     wR = .Range("A" & Rows.Count).End(xlUp).Row     Set wRng = .Range("A1:A" & wR)   End With   '   'Sheet1のA列の文字列をSheet2のA列から検索する   With Worksheets("Sheet1")     wR = .Range("A" & Rows.Count).End(xlUp).Row     For wI = 1 To wR       Set wfnd = wRng.Find(.Cells(wI, 1).Value)       If Not wfnd Is Nothing Then         '検索データ有り         .Cells(wI, 2) = .Cells(wI, 1).Address '←Sheet1のカラム2にSheet1.番地を表示         .Cells(wI, 3) = wfnd.Address      '←Sheet1のカラム3にSheet2.番地を表示       End If     Next   End With End Sub

seisan07
質問者

お礼

早速の回答ありがとうございます。 無事にセル番地を取得することが出来ました。 分かりやすい記述で大変勉強になりました。 ありがとうございます。

関連するQ&A

専門家に質問してみよう