2012-11-23 7 views
7

Ho un file in formato .csv e da colonne A-S, ha alcuni record come una tabella. Il mio programma completo inserirà/rimuoverà/eliminerà/aggiungerà alcune righe, colonne e modifica dei valori delle celle ecc. Sono riuscito a codificare tutte le operazioni di cui ho bisogno, ora sto provando ad integrarlo con una gui.Come visualizzare parte di Excel su VBA Form

Quello che voglio è visualizzare celle da Ax1 all'ultima colonna che ha registrato su modulo utente VBA. Come lo posso fare?

* ps: ancora una volta, il formato del mio file è .csv e sto usando Excel 2007

risposta

17

È possibile utilizzare una casella di riepilogo a più colonna per visualizzare i dati.

LOGIC Importare il file di testo

  1. (Csv) nel foglio temperatura
  2. Mostrare che i dati nella casella di riepilogo a più colonne
  3. eliminare il foglio temperatura in caso Userform scarico

Importare il file di testo (Csv) nel foglio temporaneo

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 

E ora è possibile visualizzare tali dati in una casella di riepilogo a più colonne.

Visualizza i dati nella casella di riepilogo a più colonne

sto prendendo un esempio di 3 colonne e fino ad traino 20. Variazione del caso

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

enter image description here

Eliminare il foglio di temperatura in caso di scaricamento Userform

Per eliminare il foglio di temp, dichiarare il wsTemp sulla parte superiore del codice in modo che sia possibile accedere che, in caso UserForm_QueryClose. Vedere questo esempio completo

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