excel - 如何从 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
解决方案
将用户文本框输入与 Range 参数中的 $ 字符连接起来。
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12, "MYSTERY_SHOPPER", fileName, True, Me.tbxSheet & "$"
如果要指定范围和工作表,语法为:
"SheetName!A1:E10"
或使用范围名称
"SheetName!MyRange"
推荐阅读
- javascript - 用于表单字段验证的正则表达式
- sql - 将 varchar 转换为数据类型 int 时转换失败
- php - 使用 preg_match 验证日期 dd-MON-yyyy
- visual-studio-code - 所有文档的VS Code DocumentSelector?
- angular - 如何拦截 :enter & :leave Angular 中的动画并改变 Diff?
- python - Apache Beam python 流式写入每小时 avro 文件
- ios - 有什么方法可以定期在后台模式(iOS)下发送 HTTP 请求?
- java - 使用 NumberFormat 在 JTextFormattedField 上不设置文本
- visual-studio - 为什么 SSRS 在已经定义时要求定义查询参数?
- react-native - 如何在运行时在反应本机的字典对象数组中添加动态数据