繁体   English   中英

VBA Workbook.Open(File)不返回任何内容

[英]VBA Workbook.Open(File) returns Nothing

编辑: 经过大量的帮助并且不知道发生了什么,它使用了不同的打开方法( 请参见下面的@JohnMuggin的帮助 )工作—所以我取消了我的原始代码的评论,然后突然起作用了。

我只发现了Workbook.Open("file")另一个实例,什么也不返回(链接到Q) 但是,他们的问题是由于在用户定义的函数中调用Workbook.Open("file") (据我所知)。 在这里,我在Sub调用它,但是存在相同的问题,并且找不到解决方案。 我正在使用Excel 2013。

Private Sub CommandButton2_Click()

'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.EnableEvents = False
Application.Calculation = xlCalculationManual

'Retrieve Target Folder Path From User
Set FilePicker = Application.FileDialog(msoFileDialogFilePicker)

'Opens folder-picking window
With FilePicker
    .Title = "Select a file."
    .AllowMultiSelect = False
    If .Show = True Then
        myFile = .SelectedItems(1)
    Else: GoTo NextCode
    End If
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)

宏继续,但是最后一行Set wb = Workbooks.Open(myFile)wb设置为Nothing 直到我在代码中更远地调用wb时,这不会产生任何错误。

前面的行Set wsL = ThisWorkbook.Worksheets(3)还将wsL设置为Nothing

我已经使用调试器检查了每一行和值,并确定myFile是正确的路径,文件名和扩展名。

最后尝试这个小子。 如果无法打开您的工作簿,则路径或文件名存在问题

Sub opendfghj()

Dim wb As Workbook

Workbooks.Open Filename:="C:\Users\User\Desktop\Templates and Example data\Repeat Tests\file.xlsx"

Set wb = ActiveWorkbook

wb.Worksheets("Sheet1").Range("A1") = "It Works"
End Sub

如果您打开的工作簿副本(在另一个文件夹中)的名称与您的VBA试图打开的名称相同 ,则它会静默失败。 ActiveWorkbook解决方案似乎可以正常工作-因为您已经打开了至少一个工作簿-并且该工作簿处于活动状态-但您认为并非如此。

我想这可能是一个常见的错误-在开发VBA项目时,您可能已经打开了目标工作簿的副本以检查列号等。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM