我试图打开一个文件中的第三个工作表,以获取信息的来源。该.FileDialog
工作正常,我可以选择一个文件,但由于线路Set wbR = wb.Worksheets(3)
附近的代码,因为wb.Worksheets(3) = <Object variable or With block variable not set>
本节的底部我不断收到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
尝试像'如果不WB是没什么然后设置WBR = wb.Worksheets(3)'这将阻止它试图在不将其放置在世界银行工作。这将确认或否认这是问题的根源。 –
我的代码没有出现错误。确保两个工作簿都有3个工作表。布兰登在设置工作簿时对于安全是正确的,但由于它在我的机器上运行良好,我认为这可能不是问题。 –