2017-08-23 16 views
-1

我已经创建了一个用户窗体来将一个Excel工作表导入到一个特定的Excel表格。但是,我需要导入的工作簿包含多个工作表,这些工作表是每个工作表上每月的31天。有没有办法在用户表单上创建组合框,以允许用户使用VBA选择他们希望导入访问表的工作表?如何允许用户使用组合框选择他们希望导入访问的Excel工作表?

这里是我的代码:

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 btnImportSpreadsheet_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 
     If MsgBox("Do you want to import this file?", vbYesNo) = vbYes Then 
      DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12, "Dyeing", Me.txtFileName, True 
      MsgBox "File Imported" 
     Else 
      MsgBox "Please select file again" 
     End If 
    End If 
End Sub 
+0

向我们展示你迄今所取得的VBA代码。 –

+0

私人小组btnBrowse_Click() 昏暗的诊断作为Office.FileDialog 昏暗的项目为Variant 集诊断= Application.FileDialog(msoFileDialogFilePicker) diag.AllowMultiSelect =假 diag.Title = “请选择一个Excel电子表格” 诊断.Filters.Clear diag.Filters.Add “Excel电子表格”, “* .xls的,* .XLSX” 如果diag.Show然后 为每个项目在diag.SelectedItems Me.txtFileName =项 接着 完如果 末次 –

+0

私人小组btnImportSpreadsheet_Click() 昏暗FSO作为新FileSystemObject的 如果NZ(Me.txtFileName, “”)= “” 那 MsgBox “请选择一个文件!” 退出小组 结束如果 如果FSO.FileExists(NZ(Me.txtFileName, “”)),然后 如果MSGBOX( “你想导入此文件?”,vbYesNo)= vbYes然后 DoCmd.TransferSpreadsheet acImport,acSpreadsheetTypeExcel12, “染色”,Me.txtFileName,真 MSGBOX “文件导入” 否则 MsgBox “请重新选择文件” 结束如果 结束如果 结束小组 –

回答

1

当用户选择xls文件,你需要阅读的工作表名称列表中所描述的,例如,here和这些名称添加到组合框:创建行的组合框来源类型= Value List并添加名称列表中的名称作为字符串分隔昏迷combobox RowSource属性。在AfterUpdate combobox事件中导入选定的工作表。使用TransferSpreadsheet函数的Range参数进行工作表选择。不要忘记添加!到工作表的名称的末尾:

DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12, "Dyeing", Me.txtFileName, True, strSelectedWorksheetName & "!" 
相关问题