首页 > 解决方案 > 如何从 Excel 文件中选择特定工作表以导入 Access?

问题描述

在图像中,我显示了选择要导入的 Excel 文件的界面。

只要您在代码中输入工作表的名称,它就可以完美运行:

DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12, "MYSTERY_SHOPPER", fileName, True, "Junio-2019!"

但是,我希望用户选择他们想要导入的工作表(可能使用输入框来捕获工作表的名称?),因为他不应该每次都输入并编辑该行。

已解决-感谢@June7

'----------------- BUTTON BROWSE

Private Sub btnbuscar_Click()

Dim diag2 As Office.FileDialog
Dim Item2 As Variant

Set diag2 = Application.FileDialog(msoFileDialogFilePicker)
diag2.AllowMultiSelect = False
diag2.Title = "Choose a Excel file"
diag2.Filters.Clear
diag2.Filters.Add "Excel files", "*.xls, *.xlsx"
DoCmd.SetWarnings False

If diag2.Show Then
    For Each Item2 In diag2.SelectedItems
        Me.etiquetaarchivo = Item2
    Next
End If

End Sub


'---------------- BUTTON IMPORT

Private Sub btnimportar_Click()

Dim FSO2 As New FileSystemObject

If Nz(Me.etiquetaarchivo, "") = "" Then
    MsgBox "You don't select a file!"
    Exit Sub
End If

If FSO2.FileExists(Nz(Me.etiquetaarchivo, "")) Then

    ExcelImport2.ImportExcelSpreadsheet Me.etiquetaarchivo, FSO2.GetFileName(Me.etiquetaarchivo)
    DoCmd.SetWarnings False

Else
    MsgBox "Not file found!"
End If


'---------------- MODULE

Public Sub ImportExcelSpreadsheet(fileName As String, tableName As String)
On Error GoTo BadFormat

Dim Hoja As String
Hoja = inputbox("Input the sheet name")
    DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12, "MYSTERY_SHOPPER", fileName, True, Hoja & "$"
    DoCmd.SetWarnings False
    Exit Sub

BadFormat:
    MsgBox "The format isn't correct"
End Sub

标签: excelvbams-access

解决方案


将用户文本框输入与 Range 参数中的 $ 字符连接起来。

DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12, "MYSTERY_SHOPPER", fileName, True, Me.tbxSheet & "$"

如果要指定范围和工作表,语法为:

"SheetName!A1:E10"

或使用范围名称

"SheetName!MyRange"


推荐阅读