|
VBA初心者で申し訳ないのですが、複数のブックのある指定範囲から1つのシートに並べていくのに、とあるサイトから下記コードでやってみたところ、コピーは上手くできました。
ただ、実行するたびにどんどん下に追加されていきます。
もしセルの内容が同じだった場合、それは追加されず新規内容のみ追加されるようにするにはどのようにすればよろしいのでしょうか?
説明が下手で申し訳ないのですが、宜しくお願いします。
Sub 複数のファイルを一つに()
Dim theName As String 'ブック名の保存用
Dim theDir As String 'パスの保存用
Dim theBook As Workbook '開いたブックの保存用
Dim flg As Boolean '1件目かどうかの識別用
flg = True
Application.ScreenUpdating = False
'現在のカレントパスのtenkiフォルダに移動する
theDir = ThisWorkbook.Path & "\tenki"
'(1) 拡張子xlsのファイル名を取り出す
theName = Dir(theDir & "\*.xls")
'(2) 最後のファイル名を取り出すまで繰り返す
Do While theName <> ""
'取り出したファイル名を指定してオープン
Set theBook = Workbooks.Open(theDir & "\" & theName)
'サブプロシージャへ
Call subTenki(theBook, flg)
flg = False
theBook.Close
theName = Dir
Loop
End Sub
'---開いたブックのアクティブセル領域をコピーする(サブプロシージャ)
Sub subTenki(theBook As Workbook, flg As Boolean)
Dim thetbl As Range, LRow As Long
Set thetbl = theBook.Sheets(1).Range("A3:B6")
'コピーする
thetbl.Copy
With ThisWorkbook.ActiveSheet
'(3) 転記先のシートのどの行までデータが入っているかを調べる
LRow = .Range("A65536").End(xlUp).Row
If LRow = 1 Then
.Range("A" & LRow).PasteSpecial xlPasteValues
Else
.Range("A" & LRow + 1).PasteSpecial xlPasteValues
End If
End With
Application.CutCopyMode = False
End Sub
|
|