我的VBA项目包括清理数据库。
我正在使用用户表单,这是我到目前为止编写的代码。
我已经成功导入了一个文件,但仍然无法对其执行操作。
- 我需要你们告诉我如何获取我刚刚导入的.csv文件的工作簿名称和工作表,以开始通过工作簿名称和工作表名称分配引用数据库的操作。
- 如果您能告诉我如何将我的用户表单保持在顶部,或者如何在不显示的情况下导入.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