| 
    
     |  | こんばんは。 エラー処理がわからないので教えてください。
 一つのフォルダに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
 
 
 |  |