Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';不要导入一些excel文件_Excel_Vba_Ms Access - Fatal编程技术网

Can';不要导入一些excel文件

Can';不要导入一些excel文件,excel,vba,ms-access,Excel,Vba,Ms Access,我有一个代码可以帮助我通过点击按钮导入Excel电子表格。代码运行正常,我可以导入大多数Excel电子表格。然而,有一些Excel电子表格我无法导入,我不知道为什么 Option Compare Database Private Sub btnBrowse_Click() Dim diag As Office.FileDialog Dim item As Variant Set diag = Application.FileDialog(msoFileDialogFi

我有一个代码可以帮助我通过点击按钮导入Excel电子表格。代码运行正常,我可以导入大多数Excel电子表格。然而,有一些Excel电子表格我无法导入,我不知道为什么

Option Compare Database

Private Sub btnBrowse_Click()
    Dim diag As Office.FileDialog
    Dim item As Variant

    Set diag = Application.FileDialog(msoFileDialogFilePicker)
    diag.AllowMultiSelect = False
    diag.Title = "Please select an Excel Spreadsheet"
    diag.Filters.Clear
    diag.Filters.Add "Excel Spreadsheet", "*.xls, *.xlsx"

    If diag.Show Then
        For Each item In diag.SelectedItems
            Me.txtFileName = item
        Next
    End If
End Sub

Private Sub btnHome_Click()
    DoCmd.OpenForm ("MainFrm")
End Sub

Private Sub btnImport_Click()
    Dim FSO As New FileSystemObject

    If Nz(Me.txtFileName, "") = "" Then
        MsgBox "Please select a file"
        Exit Sub
    End If

    If FSO.FileExists(Nz(Me.txtFileName, "")) Then
        ImportExcel.ImportExcelSpreadsheet Me.txtFileName, FSO.GetFileName(Me.txtFileName)
    Else
        MsgBox "File not found"

    End If
End Sub

Public Sub ImportExcelSpreadsheet(fileName As String, tableName As String)
On Error GoTo BadFormat
    DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12, tableName, fileName, True
    Exit Sub

BadFormat:
    MsgBox "The file you tried to import was not an Excel Spreadsheet"
End Sub

我无法导入的某些excel电子表格文件将显示我在代码中键入的消息。该文件类型肯定是Excel电子表格,但不知何故我无法导入。我想知道这是否是因为我的代码。

电子表格类型应该是
acSpreadsheetTypeExcel12Xml
,至少在第一次尝试时是这样。

是的。但是我们没有您的
ImportExcel.ImportExcelSpreadsheet
功能。@Gustav添加了该功能,非常感谢您的帮助,谢谢!尝试通过MS Access master手动导入文件,您是否会收到相同的错误?@VanNg手动导入时,我没有收到错误。如此处所示,手动打开所有错误选项,然后您可以获得有关错误的更多详细信息,我试过使用这个,但我仍然有同样的问题。这些电子表格的结构有问题,或者不是Excel12格式。有问题的电子表格类型正确吗?看看@SiyonDP,它们是.xlsx类型,但我们没有。因此,请仔细检查特性。