にseetをコピーするときに、以下のように私は、コードの単純なビットを持っています見ることができますランタイムエラー9 - 範囲外の添字新しいwrokbook
Private Sub btn_conact_Click()
Dim projectref As String
Dim savelocation As String
Dim projectSearchRange As Range
Dim LastRow As Integer
'set search value (porject key - unique)
projectref = cmb_Project.Value
Application.ScreenUpdating = False
'find the project reference in the tracking spreadsheet
Sheets("Project Tracking").Activate
Set projectSearchRange = Range("A:A").Find(projectref, , xlValues, xlWhole)
LastRow = projectSearchRange.Row
'file directory to save the new workbook in
savelocation = Cells(LastRow, 5).Value
'template for the contact list
Sheets("Contact List").Activate
Cells(7, 3).Value = projectref
'create new workbook
Set newWorkbook = Workbooks.Add
With newWorkbook
.Title = "Contact List for Project" & projectref
.SaveAs Filename:=savelocation & "/" & projectref & "Contact_List.xlsx"
End With
'Windows("Project tracker spreadsheet VBA").Activate
Sheets("Contact List").Copy Before:=Workbooks(projectref & "Contact_List.xlsx").Sheets("Sheet1") 'runtime error 9: subscript out of range
Windows(projectref & " Contact_List.xlsx").Activate
Application.ScreenUpdating = True
End Sub
として、私は上のランタイムエラーを取得しています最後の4行目はかなり重要な行です。
私の質問は、このエラーの原因となる可能性がある箇所を誰かが見ることができますか?指定された場所に新しいブックを正常に作成して保存しますが、古いブック(プロジェクトトラッカーのスプレッドシートVBA)からこのコードで作成された新しいシートに必要なシートをコピーしようとすると転倒します。
は、なぜこの行 'Windowsの( "プロジェクトトラッカーのスプレッドシートVBA")Activate'をコメントアウトしていますか?コード内のこの行の前にある単一引用符を削除します。 – sn152
"古い"ブックの名前は何ですか? "プロジェクトトラッカースプレッドシートVBA.xlsm"の場合は、ワークブック( "プロジェクトトラッカースプレッドシートVBA.xlsm")を使用する必要があります。 ").Sheets(" Sheet1 ")' – YowE3K