|
こんばんは。
エラー処理がわからないので教えてください。
一つのフォルダに20ぐらいの同じフォーマットのシートを持ったファイルがあります。
シート名は、"1月"から"12月"です。
単純にコピペしたいのですが、ファイルの中に虫食いのように、8月や10月が抜けたり
6月から8月までがないファイルなどがあります。
そこで、シートがない時には、そのシートをとばして次のシートに行きたいのですが・・・
一回目の虫食い(シートがない)の時はうまく飛んでくれるのですが、
2回目以降はエラーが発生します。
シートがないときは、次のシートに最後まで飛ぶようにするには、どうしたら
よいのでしょうか?
Sub test()
Dim myPath As String, myFlname As String
Dim myVal
Dim myBK As Workbook
Dim i As Long
Application.ScreenUpdating = False
myPath = ThisWorkbook.Path & "\"
myFlname = Dir(myPath & "*.xls")
Do Until myFlname = ""
If myFlname <> ThisWorkbook.Name Then
Set myBK = Workbooks.Open(Filename:=myPath & myFlname)
With myBK
For i = 1 To 12
On Error GoTo エラー
With Worksheets(i & "月")
.Range("A2", .Range("B65536").End(xlUp)).Copy _
ThisWorkbook.Sheets(i & "月").Range("A65536").End(xlUp).Offset(1)
End With
エラー: Next
.Close False
End With
End If
myFlname = Dir()
Loop
Application.ScreenUpdating = True
End Sub
|
|