• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:2つのブックで、1レコードの2列の値が同じ行のセル選択するには?)

2つのブックで1レコードの2列の値が同じ行のセル選択方法

このQ&Aのポイント
  • 2つのブックで1レコードの2列の値が同じ行のセルを選択する方法について教えてください。
  • 左.xlsと右.xlsの両方のブックで、1レコードのB列とC列の値が同じ行のセルを選択したいです。
  • Sub TEST()を使用して、右.xlsのSheet1で指定したB列とC列の値が左.xlsのSheet1と共通している行のセルを選択する方法を教えてください。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

>B列(日付、実際には西暦です)だけは、全く同じデータとなっております。 B列には「年/月/日」が記入されていて,書式で日だけ表示している。 Book1.xlsのSheet1に,ある月の日付とデータ(左)がB3から。 Book2.xlsのSheet1に通しのカレンダーの日付とデータ(右)。 Sub macro1()  Dim s1 As Worksheet  Dim s2 As Worksheet  Dim target As Range  Dim i As Long  ’シートを指名すれば,親ブックも一緒に付いてくる。  Set s1 = Workbooks("Book1.xls").Worksheets("Sheet1")  Set s2 = Workbooks("Book2.xls").Worksheets("Sheet1")  ’照合の開始位置は左の一番上のデータから  Set target = s2.Range("B:B").Find(what:=s1.Range("B3").Value, LookIn:=xlFormulas, lookat:=xlWhole)  If target Is Nothing Then   MsgBox "base line not match"   Exit Sub  End If  ’日付に漏れが無い前提で,開始位置からC列を照合していく  For i = 0 To s1.Range("B65536").End(xlUp).Row - 3   If target.Offset(i, 1).Value = s1.Range("B3").Offset(i, 1).Value Then    s1.Activate    s1.Range("B3").Offset(i, 1).Select    s2.Activate    target.Offset(i, 1).Select    Exit Sub   End If  Next i  msgbox "no match data" End Sub #別の方法 「フィルタオプションの設定」を使い,左のBC列の全データをクライテリア領域として,右のBC列を絞り込んでヒットした行を結果とする,といった手もあります。 マクロ以前に手動で操作できるので,まずエクセルを操って練習してみましょう。正しく絞り込み出来るようになったら,新しいマクロの記録でマクロを録って参考にしてみると良いです。

oshietecho-dai
質問者

お礼

自分の質問内容を改めて見て、説明が不足してると思いましたが、 きっちりとご理解頂き誠に有難うございました。 ほんとうに、お礼を単に言葉では現せませんが、有難うございました。 Range("B3")をActiveCell としてしまいましたが、勉強してみます。

関連するQ&A