如何在VBA表单上显示部分Excel
我有一个.csv格式的文件和AS列,它有一些logging像一个表。 我完整的程序将插入/删除/删除/添加一些行,列和编辑单元格值等。我设法编写所有我需要的操作,现在我试图将它与gui集成。
我想要的是从Ax1显示单元格到在VBA用户窗体上有logging的最后一列。 我怎样才能做到这一点?
* ps:同样,我的文件的格式是.csv,我正在使用Excel 2007
您可以使用多栏列表框来显示数据。
逻辑
- 导入临时工作表中的文本(Csv)文件
- 在多列列表框中显示数据
- 删除Userform卸载事件中的临时表
导入临时工作表中的文本(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
HTH