在图像中,我显示了选择要导入的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
答案 0 :(得分:0)
使用Range参数中的$字符连接用户文本框输入。
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12, "MYSTERY_SHOPPER", fileName, True, Me.tbxSheet & "$"
如果要指定范围和图纸,语法为:
"SheetName!A1:E10"
或使用范围名称
"SheetName!MyRange"