ファイルを開き、3番目のワークシートの情報にアクセスしようとしています。 .FileDialog
はうまく動作し、ファイルを選択することができますが、wb.Worksheets(3) = <Object variable or With block variable not set>
のため、このセクションの末尾にあるSet wbR = wb.Worksheets(3)
という行のためにrun-time error '91'
が得られます。これは私がSet wb = Workbooks.Open(myFile)
が働かず、Nothing
を返すと信じていますが、他の人が.FileDialog
を使ってファイルを開いた方法を見た後、私の鉱山がどう違うのか分かりません。どんな助けやアドバイスも大歓迎です。VBAエラー '91' - エラーの原因を見つけることができません
'Set variables
Dim wb As Workbook 'Workbook to open
Dim wbR As Worksheet 'This is the raw data on the new workbook
Dim wsL As Worksheet 'Worksheet in current file
Dim myFile As String 'File to open
Dim FilePicker As FileDialog
'Set light chain hit worksheet
Set wsL = ThisWorkbook.Worksheets(3)
'Optimizes Speed
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.Calculation = xlCalculationManual
'Retrieve target file
Set FilePicker = Application.FileDialog(msoFileDialogFilePicker)
'Opens folder-picking window
With FilePicker
.Title = "Select a file."
.AllowMultiSelect = False
If .Show <> -1 Then GoTo NextCode
myFile = Dir(.SelectedItems(1))
End With
'If folder is not selected
NextCode:
myFile = myFile
If myFile = "" Then GoTo ResetSettings
'Set variable equal to opened workbook
Set wb = Workbooks.Open(myFile)
'Ensure Workbook has opened before moving on to next line of code
DoEvents
'Sets worksheet for importing
Set wbR = wb.Worksheets(3)
*マクロは、この最後の行を過ぎて続けるが、それはまだそれを取得しないため、このエラーの
3つのワークシートがありますか?おそらく 'set wbR = wb.Worksheets(" Sheet3 ")'を意味しますか?また、デバッグ中に 'ScreenUpdating'をONにしておき、' F8'でコードをステップ実行して、 'wb'ワークブックが実際に開くかどうか確認してください。 – BruceWayne
'Not wb is Nothing Then Set wbR = wb.Worksheets(3)'これは、設定されていない場合にwbを操作しようとするのを防ぎます。これにより、これが問題の原因であることを確認または拒否します。 –
あなたのコードに間違いはありません。両方のワークブックに3つのワークシートがあることを確認してください。 Brandonは、ワークブックを設定するときに安全であることについて正しいですが、それは私のマシンで正常に動作したので、それは問題ではないかもしれないと思います。 –