“Workbook.open”错误 – 打开文件后立即closures文件

我需要获取一百个Excel工作簿上的数据。 我创build了一个macros来循环这些文件,获取数据并closures它们。 但在我的Workbooks.open(path)打开文件后,它closures它,并抛出一个1004错误 ,指出方法“打开”失败。

我试图打开另外一百个文件,其中每个文件都引发同样的错误。 我试图打开一个正常的文件(不是那一百),通过macros,它正常打开。

复制了一堆到我的C:\,他们都抛出一个错误。

录制一个macros来打开文件。 该文件打开是因为我点击了文件 – >打开文件,但是如果我运行macros打开它,则会引发错误。

显然问题在于这些文件。

  • 链接到文件 。

– > CODE:只是一个正常的Workbook.open代码(没有完整的代码,只是它!我得到一个文件链接错误)

Workbook.Open("C:\file.xlsx") 

– >他们通常手工打开,没有任何错误或问题。

– >他们有:
*查询表
*正常的公式
*他们有点小

– >观察和我试过的:

  • path是正确的(它打开文件并closures它后,错误)。

  • 我试图打开的文件有连接查询,但我删除了我的testing文件的连接。 同样的错误。

  • 尝试了CurruptLoad参数,同样的错误(我不知道我是否正确使用)。

  • 试过UpdateLinks:= 0,同样的错误。

  • 试图通过新的Excel.Application打开它,没有任何改变。

  • 在另一台电脑上试了一样的东西。

任何人有这样的事情?

我应该尝试什么?

开放后你在做什么?

如果你正在尝试做其他的事情,那么可能文件没有完全打开,错误是基于下一行没有发生。

解决scheme我find了这种情况下(在我的工作)

 Application.DisplayAlerts = False set wb = Workbooks.Open(objFile.path, ReadOnly:=True, CorruptLoad:=xlExtractData) wb.close Application.DisplayAlerts = True 

通过CorruptLoad:= xlExtractData,它可以清除每个表格,每个连接以及其他可能有问题的内容。 我得到我的数据并closures文件,而不保存它。

感谢你们的支持。

如果我理解你的问题,你可以使用我使用的一个代码,当我需要从加号文件中检索数据(所有格式都相同)

 Sub ImportData() Dim wb As Workbook Dim myPath As String Dim myFile As String Dim myExtension As String Dim FldrPicker As FileDialog Dim LastRow As Long 'Optimize Macro Speed Application.ScreenUpdating = False Application.EnableEvents = False Application.Calculation = xlCalculationManual WsTo = ActiveWorkbook.Name 'Retrieve Target Folder Path From User Set FldrPicker = Application.FileDialog(msoFileDialogFolderPicker) With FldrPicker .Title = "Select A Target Folder" .AllowMultiSelect = False If .Show <> -1 Then GoTo NextCode myPath = .SelectedItems(1) & "\" End With 'In Case of Cancel NextCode: myPath = myPath If myPath = "" Then Exit Sub 'Target File Extension (must include wildcard "*") myExtension = "*.xlsx" 'Target Path with Ending Extention myFile = Dir(myPath & myExtension) 'Loop through each Excel file in folder Do While myFile <> "" 'Set variable equal to opened workbook Set wb = Workbooks.Open(Filename:=myPath & myFile) 'Change First Worksheet's Background Fill Blue Sheets(1).Select Range("A1").Select Range(Selection, Selection.End(xlDown)).Select Range(Selection, Selection.End(xlToRight)).Select Selection.Copy WsFrom = ActiveWorkbook.Name Windows(WsTo).Activate Sheets(1).Select With ActiveSheet LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row End With Range("A" & LastRow + 1).Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, transpose:=False Application.CutCopyMode = False 'Save and Close Workbook Workbooks(WsFrom).Close SaveChanges:=False 'Get next file name myFile = Dir Loop 'Message Box when tasks are completed MsgBox "Importazione completata!" 'Reset Macro Optimization Settings Application.ScreenUpdating = True Application.EnableEvents = True Application.Calculation = xlCalculationAutomatic End Sub