Excel VBA質問箱 IV

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

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


22326 / 76738 ←次へ | 前へ→

【59795】2bookの文字列を比較する
質問  みみん  - 09/1/8(木) 21:02 -

引用なし
パスワード
   こんばんは。

下記のようなbookが二つあります。
旧.xlsx
C列 D列
123 田中
456 山本
789 下田

新.xlsx
C列 D列
123 田中
111 神田
456 山本
555 佐藤
789 下田

まとめ.xlsx
A列 B列 C列
123 田中 変更なし
456 山本 変更なし
789 下田 変更なし
111 神田 追加
555 佐藤 追加

2つのbookのC列から一致するデータをまとめ.xlsxに書き出すのは
下記のように書きましたが
Worksheets("Sheet1").Cells(Lastrow, 1) = FR.Valueで、
インデックスが有効範囲ではありませんというエラーがでます。

また追加されているデータを書く方法もわからずにいます。
教えていただきたく、投稿させて頂きました。
よろしくお願いいたします。

Sub test()

Dim FL1 As Variant
Dim FL2 As Variant
Dim CROW1 As Long
Dim CROW2 As Long
Dim Range1, Range2 As Range
Dim CL1, CL2 As Range
Dim FR As Range
Dim Lastrow As Long
Dim i As Long

FL1 = "C:・・・\Desktop\旧.xlsx"
FL2 = "C:・・・\Desktop\新.xlsx"

Workbooks.Open FL1
CROW1 = Worksheets("旧").Cells(65536, 3).End(xlUp).Row
Set Range1 = Worksheets("旧").Range(Cells(2, 3), Cells(CROW1, 3))

Workbooks.Open FL2
CROW2 = Worksheets("新").Cells(65536, 3).End(xlUp).Row
Set Range2 = Worksheets("新").Range(Cells(2, 3), Cells(CROW2, 3))


For Each CL1 In Range1
  Set FR = Range2.Find(what:=CL1.Value, LookIn:=xlValues, lookat:=xlWhole)
    If Not FR Is Nothing Then
      Lastrow = ThisWorkbook.Worksheets("Sheet1").Cells(65536, 1).End(xlUp).Row + 1
      For i = 1 To Lastrow
        Worksheets("Sheet1").Cells(Lastrow, 1) = FR.Value
        Worksheets("Sheet1").Cells(Lastrow, 2) = FR.Offset(, 1).Value
        Worksheets("Sheet1").Cells(Lastrow, 3) = "変更なし"
      Next
     
    End If
Next

End Sub

0 hits

【59795】2bookの文字列を比較する みみん 09/1/8(木) 21:02 質問
【59797】Re:2bookの文字列を比較する かみちゃん 09/1/8(木) 21:13 発言
【59798】Re:2bookの文字列を比較する みみん 09/1/8(木) 21:29 発言
【59799】Re:2bookの文字列を比較する n 09/1/8(木) 21:29 発言
【59801】Re:2bookの文字列を比較する みみん 09/1/8(木) 21:50 発言
【59802】Re:2bookの文字列を比較する Hirofumi 09/1/8(木) 22:47 発言
【59804】Re:2bookの文字列を比較する みみん 09/1/9(金) 3:50 お礼

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