Można użyć wielu kolumn pola listy, aby zobaczyć dane.
LOGIC
- Importuj plik tekstu (CSV) w arkuszu temp
- Pokaż, że dane w wielokolumnowym Listbox
- Usuń arkusz temp w przypadku UserForm wyładowania
Zaimportuj plik tekstowy (CSV) w arkuszu tymczasowym
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
Teraz można wyświetlać te dane w wielokolumnowym polu listy.
Pokaż, że dane w wielokolumnowym Listbox
Biorę przykład 3 kolumny i aż do holowania 20. zmianę w obowiązującym
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
SCREENSHOT
Usuń arkusz temp w przypadku UserForm wyładowania
aby usunąć arkusz temp, deklarują wsTemp
w górnej części kodu, dzięki czemu można uzyskać dostęp, że w przypadku UserForm_QueryClose
. Zobacz ten kompletny przykład
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