2017-04-07 10 views
1

VBAの初心者です。私は、ワークブックのデータを別のワークブックの他のワークシートにコピーしようとしています。ユーザーは、ファイルダイアログで開くファイルを選択します。しかし、私はランタイムエラー9のエラーを取得します:下付き文字は範囲外です。誰かが私を啓発してくれますか?ありがとうございました。あるブックから別のブックブックにデータをコピー

Sub selectfile() 
Dim FileToOpen As String 
Dim wb2 As Workbook 
Dim wb1 As Workbook 
Dim sheet As Worksheet 
Application.ScreenUpdating = False 
Sheet2.Range("A:Y").ClearContents 
FileToOpen = Application.GetOpenFilename _ 
(Title:="Please choose a Excel File to Open", _ 
FileFilter:="Excel Files *.xlsx(*.xlsx),") 
Sheet1.Range("B30").Value = FileToOpen 
Set wb2 = Workbooks.Open(FileToOpen) 
Set sheet = wb2.Worksheets(1) 
wb2.Activate 
sheet.Copy After:=Workbooks("OQC_Check_Tools.xlsm").Sheets("Sheet2") 

End Sub 
+0

エラーは、wb2 = workbooks.worksheets( "Sheet1")行に設定されていますか?またはworkboos.open行で? –

+0

エラーがこの行にある:セットのシート= wb2.Worksheets(「シート1」) –

+0

セットシート= wb2.worksheetsのようなもの.....名前の代わりにシートのインデックスを試してみてください(1) –

答えて

0
Sub selectfile() 
Dim FileToOpen As String 
Dim wb2 As Workbook 
Dim wb1 As Workbook 
Dim sheet As Worksheet 
Application.ScreenUpdating = False 
Sheet2.Range("A:Y").ClearContents 
FileToOpen = Application.GetOpenFilename _ 
(Title:="Please choose a Excel File to Open", _ 
FileFilter:="Excel Files *.xlsx(*.xlsx),") 
Sheet1.Range("B30").Value = FileToOpen 
Set wb2 = Workbooks.Open(FileToOpen) 
Set sheet = wb2.Worksheets(1) 
sheet.usedrange.copy destination:=thisworkbook.worksheets(2).range("A1") 

End Sub 

このコードを試してみてください。

+0

はこのエラーを与えた:\t ランタイムエラー9:範囲 –

+0

のうち、どの行でエラーが添字にありましたか?あなたの投稿でいつもエラーが来る行を投稿できますか? –

+0

ランタイムエラー438の新しいエラーが発生しました:オブジェクトはこのプロパティとメソッドをサポートしていません。この行のエラー:ThisWorkbook.Worksheets(2).Range( "A1")。それについて申し訳ありません。 –

関連する問題