在后台打开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 

最好使用声明的variables来引用已打开的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 

variableswsCSV现在引用CSV表单,并且可以在UserForm模块的其他代码中引用

您可以打开另一个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