如何在VBA表单上显示部分Excel

我有一个.csv格式的文件和AS列,它有一些logging像一个表。 我完整的程序将插入/删除/删除/添加一些行,列和编辑单元格值等。我设法编写所有我需要的操作,现在我试图将它与gui集成。

我想要的是从Ax1显示单元格到在VBA用户窗体上有logging的最后一列。 我怎样才能做到这一点?

* ps:同样,我的文件的格式是.csv,我正在使用Excel 2007

您可以使用多栏列表框来显示数据。

逻辑

  1. 导入临时工作表中的文本(Csv)文件
  2. 在多列列表框中显示数据
  3. 删除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