我有一个 .csv 格式的文件,并且来自 AS 列,它有一些像表格一样的记录。我的完整程序将插入/删除/删除/添加一些行、列和编辑单元格值等。我设法编写了我需要的所有操作,现在我正在尝试将它与 gui 集成。
我想要的是显示从 Ax1 到在 VBA 用户表单上记录的最后一列的单元格。我怎样才能做到这一点?
*ps:同样,我的文件格式是 .csv,我使用的是 Excel 2007
我有一个 .csv 格式的文件,并且来自 AS 列,它有一些像表格一样的记录。我的完整程序将插入/删除/删除/添加一些行、列和编辑单元格值等。我设法编写了我需要的所有操作,现在我正在尝试将它与 gui 集成。
我想要的是显示从 Ax1 到在 VBA 用户表单上记录的最后一列的单元格。我怎样才能做到这一点?
*ps:同样,我的文件格式是 .csv,我使用的是 Excel 2007
您可以使用多列列表框来显示数据。
逻辑
在临时表中导入文本 (Csv) 文件
Private Sub CommandButton1_Click()
Dim wb As Workbook, wbTemp As Workbook
Dim wsTemp As Worksheet
Set wb = ThisWorkbook
Set wbTemp = Workbooks.Open("C:\MyCsv.Csv")
wbTemp.Sheets(1).Copy After:=wb.Sheets(wb.Sheets.Count)
Set wsTemp = ActiveSheet
wbTemp.Close SaveChanges:=False
End Sub
现在您可以在多列列表框中显示该数据。
在多列列表框中显示该数据
我以 3 列和最多 20 列为例。根据需要进行更改
Private Sub CommandButton1_Click()
Dim wb As Workbook, wbTemp As Workbook
Dim wsTemp As Worksheet
Set wb = ThisWorkbook
Set wbTemp = Workbooks.Open("C:\MyCsv.Csv")
wbTemp.Sheets(1).Copy After:=wb.Sheets(wb.Sheets.Count)
Set wsTemp = ActiveSheet
wbTemp.Close SaveChanges:=False
With ListBox1
.ColumnCount = 3
.ColumnWidths = "50;50;50"
.RowSource = wsTemp.Range("A1:C20").Address
End With
End Sub
截屏
删除 Userform 卸载事件中的临时表
要删除临时表,请wsTemp
在代码顶部声明 ,以便您可以在UserForm_QueryClose
事件中访问它。看这个完整的例子
Option Explicit
Dim wsTemp As Worksheet
Private Sub CommandButton1_Click()
Dim wb As Workbook, wbTemp As Workbook
Set wb = ThisWorkbook
Set wbTemp = Workbooks.Open("C:\MyCsv.Csv")
wbTemp.Sheets(1).Copy After:=wb.Sheets(wb.Sheets.Count)
Set wsTemp = ActiveSheet
wbTemp.Close SaveChanges:=False
With ListBox1
.ColumnCount = 3
.ColumnWidths = "50;50;50"
.RowSource = wsTemp.Range("A1:C20").Address
End With
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Application.DisplayAlerts = False
wsTemp.Delete
Application.DisplayAlerts = True
End Sub
高温高压