前提・実現したいこと
VBA を使い、2つのブックを比較してデータの転機をしたいです。
その際、比較する先のファイルをダイアログボックスから開くようにしています。
データの比較について説明すると、まずA列の数字を2つのブック間で比較をします。
その後、同じだった場合、比較する先のファイル(fn1)のB列、C列の値をもとのブック(Wb1)に張り付けるというものです。
例)If Wb1.Cells(1,1).Value=fn1.Cells(1,5) Then
Wb1.Cells(2,1)=fn1.Cells(2,5)
Wb1.Cells(3,1)=fn1.Cells(3,5) というような感じ
これをsheet1,2・・・およびA列で繰り返していきたいです。
発生している問題・エラーメッセージ
ダイアログボックスからExcelファイルを開くところまでは動くのですが、If文の部分から先で止まってしまいます。
主にオブジェクトについてのエラーコードが出てしまう状況です。
エラーメッセージ
該当のソースコード
Sub sisaku1() ' ' sisaku1 Macro ' ' Dim wb1 Set wb1 = ThisWorkbook//マクロを動かしているブック、貼り付け先 Dim fn As String fn = Application.GetOpenFilename(FileFilter:="Excelファイル,*.xlsx") If fn <> "False" Then Workbooks.Open fn fn1 = Dir(fn) //比較する先 MsgBox fn1 //開いたファイル名を表示 For Each objSheet In ThisWorkbook.Worksheets //貼り付け先のすべてのシートを参照 Dim j As Integer //比較する先のファイルの行 Dim i As Integer //貼り付け先のファイルの行 For i = 1 To 1000 For j = 1 To 1000 If Wb1.Worksheets.Cells(j, 1).Value = Workbooks(fn1).Worksheets("Sheet1").Cells(i, 1).Value Then //それぞれのブックのセルの値を比較していく Wb1.Worksheets.Cells(j, 2).Value = Workbooks(fn1).Worksheets("Sheet1").Cells(i, 2).Value Wb1.Worksheets.Cells(j, 3).Value = Workbooks(fn1).Worksheets("Sheet1").Cells(i, 3).Value End If Next j Next i Next Else MsgBox "エラーです" //ファイルを選ばなかったときのエラー文 End If End Sub
試したこと
補足情報(FW/ツールのバージョンなど)
回答1件
あなたの回答
tips
プレビュー