あなたはSUMMARY-Fと呼ばれるシートが含まれていない開いているワークブックをお持ちの場合はExcelがシートを見つけることができないので、あなたは、範囲外のエラーが発生します指定された名前でこのエラーは、マクロを記録するためにPERSONAL.xlsmなどの隠しワークブックにも適用されます。
開いているブックにSUMMARY-Fという名前のシートがない場合には、コードにチェックを入れておく必要があります。
シートが存在する場合、このような最初のコードから呼び出すことができ関数を定義すると、識別方法のオプションを提供します、この質問を参照してください:あなたはそれを変更する必要があります
How to check whether certain sheets exist or not in Excel-VBA?
を別のブックにシートをチェックするために、何かのように:
Public Function CheckSheet(ByVal sWB As String, ByVal sSheetName As String) As Boolean
Dim oSheet As Excel.Worksheet
Dim bReturn As Boolean
For Each oSheet In Workbooks(sWB).Sheets
If oSheet.Name = sSheetName Then
bReturn = True
Exit For
End If
Next oSheet
CheckSheet = bReturn
End Function
は、次に、あなたのコードのチェックを追加することができます。
Sub CopySheets1()
Dim wkb As Workbook
Dim sWksName As String
sWksName = "SUMMARY-F"
For Each wkb In Workbooks
If wkb.Name <> ThisWorkbook.Name Then
If CheckSheet(wkb.Name,sWksName)
wkb.Worksheets(sWksName).Copy Before:=ThisWorkbook.Sheets(1)
End If
End If
Next
Set wkb = Nothing
End Sub
ブックの1つに「SUMMARY-F」という名前のワークシートがありません。 –
PERSONAL.xls *がありますか? –