在后台打开CSV文件并检索工作表名称



我的VBA项目包括清理数据库。

我正在使用用户表单,这是我到目前为止编写的代码。

我已经成功导入了一个文件,但仍然无法对其执行操作。

  1. 我需要你们告诉我如何获取我刚刚导入的.csv文件的工作簿名称和工作表,以开始通过工作簿名称和工作表名称分配引用数据库的操作。
  2. 如果您能告诉我如何将我的用户表单保持在顶部,或者如何在不显示的情况下导入.csv文件,我将不胜感激

法典

Dim fNameAndPath As Variant
Private Sub importedworkbook_Click()
MsgBox "imported workbook : " & _
fNameAndPath
End Sub

Private Sub Importbutton_Click()
fNameAndPath = Application.GetOpenFilename(FileFilter:="CSV Files Only (*.CSV), *.XLS", Title:="Select File To Be Opened")
If fNameAndPath = False Then Exit Sub
Workbooks.Open Filename:=fNameAndPath
End Sub

最好使用声明的变量来引用打开的 CSV 工作表

Private wsCSV as Worksheet
Private Sub Importbutton_Click()
    Dim wb as Workbook
    fNameAndPath = Application.GetOpenFilename(FileFilter:="CSV Files Only (*.CSV), *.XLS", Title:="Select File To Be Opened")
    If fNameAndPath = False Then Exit Sub
    Set wb = Workbooks.Open(Filename:=fNameAndPath)
    Set wsCSV = wb.Worksheets(1) ' A csv file will only ever have one sheet
End Sub

变量wsCSV现在引用 CSV 工作表,并且可以在用户窗体模块中的其他代码中引用

您可以打开 Excel 的第二个实例来处理隐藏的文件

    Dim objExcel As Excel.Application
    Dim wb As Workbook
    fNameAndPath = Application.GetOpenFilename(FileFilter:="CSV Files Only (*.CSV), *.XLS", Title:="Select File To Be Opened")
    If fNameAndPath = False Then Exit Sub
    Set objExcel = New Excel.Application
    Set wb = objExcel.Workbooks.Open(fNameAndPath)
    Set wsCSV = wb.Worksheets(1)
    MsgBox wsCSV.Name
    ' do stuff
    'close second instance  
    wb.Close False
    objExcel.Quit
    Set objExcel = Nothing

最新更新