簡體   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