2012-11-23 35 views
7

पर एक्सेल का हिस्सा कैसे प्रदर्शित करें मेरे पास .csv प्रारूप और ए-एस कॉलम पर एक फ़ाइल है, इसमें कुछ रिकॉर्ड हैं जैसे टेबल। मेरा पूरा कार्यक्रम कुछ पंक्तियों, स्तंभों और संपादन कक्ष मूल्यों को सम्मिलित/हटा/हटाएगा। मैं उन सभी परिचालनों को कोड करने में कामयाब रहा हूं जिन्हें मैं चाहता हूं, अब मैं इसे एक गुई के साथ एकीकृत करने की कोशिश कर रहा हूं।वीबीए फॉर्म

मैं चाहता हूं कि एक्स 1 से कोशिकाओं को अंतिम कॉलम में प्रदर्शित करना है जिसमें वीबीए उपयोगकर्ता फॉर्म पर रिकॉर्ड है। मैं उसे कैसे कर सकता हूँ?

* पुनश्च: फिर, मेरे फ़ाइल का प्रारूप .csv है और मैं आप डेटा दिखाने के लिए एक बहु स्तंभ लिस्टबॉक्स उपयोग कर सकते हैं Excel 2007

उत्तर

17

उपयोग कर रहा हूँ।

लॉजिक

  1. आयात पाठ (CSV) अस्थायी शीट में फ़ाइल
  2. दिखाओ कि एकाधिक लिस्टबॉक्स
  3. में डेटा UserForm अनलोड घटना में अस्थायी पत्रक हटाएं

अस्थायी शीट में पाठ (सीएसवी) फ़ाइल आयात करें

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 कॉलम का एक उदाहरण है और ऊपर टो तक लागू

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 के रूप में 20. बदलें ले रहा हूँ में डेटा

enter image description here

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

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^