ΔΙΑΔΙΚΑΣΙΕΣ: Προσομοίωσης ενός Συγκεντρωτικού πίνακα με χωρίς σύνοψη του Excel 2000

Αναγν. άρθρου: 213799
Ανάπτυξη όλων | Σύμπτυξη όλων

Σε αυτήν τη σελίδα

Περίληψη

Αυτό το άρθρο βήμα προς βήμα σας δείχνει τον τρόπο χρήσης της Microsoft Visual Basic for Applications κώδικα για την προσομοίωση ενός Συγκεντρωτικού πίνακα που δεν συνοψίζουν δεδομένα.

Στο Microsoft Excel, όταν χρησιμοποιείτε τοΣυγκεντρωτικός πίνακαςεντολή για να δημιουργήσετε έναν πίνακα από μια λίστα, είναι πάντα σύνοψης των δεδομένων σύμφωνα με την επιλογή που έχει επιλεγεί στο στοΣύνοψη κατάλίστα με τοΠεδίο Συγκεντρωτικού Πίνακαπαράθυρο διαλόγου. Επειδή αυτό το πλαίσιο λίστας δεν διαθέτει μια επιλογή "χωρίς σύνοψη", δεν υπάρχει τρόπος για να χρησιμοποιήσετε έναν πίνακα για να συνοψίσει τα δεδομένα χωρίς σύνοψη κατά κάποιο τρόπο. Αυτό το άρθρο σας δείχνει πώς μπορείτε να χρησιμοποιήσετε τη Microsoft Visual Basic for Applications κώδικα για να δημιουργήσετε έναν πίνακα.

Η Microsoft παρέχει παραδείγματα προγραμματισμού μόνο για επεξήγηση, χωρίς να παρέχει καμία εγγύηση, είτε σιωπηρή είτε ρητή, περιλαμβανομένων, ενδεικτικά, των σιωπηρών εγγυήσεων εμπορευσιμότητας ή/και καταλληλότητας για συγκεκριμένο σκοπό. Αυτό το άρθρο προϋποθέτει ότι είστε εξοικειωμένοι με τη γλώσσα προγραμματισμού που παρουσιάζεται, καθώς και με τα εργαλεία που χρησιμοποιούνται για τη δημιουργία και τον εντοπισμό σφαλμάτων διαδικασιών. Οι μηχανικοί υποστήριξης της Microsoft μπορούν να σας εξηγήσουν τη λειτουργικότητα μιας συγκεκριμένης διαδικασίας, αλλά δεν θα τροποποιήσουν αυτά τα παραδείγματα για να παράσχουν πρόσθετες λειτουργίες, ούτε θα δημιουργήσουν διαδικασίες, για να καλύψουν τις συγκεκριμένες ανάγκες σας.
Εάν δεν έχετε μεγάλη εμπειρία προγραμματισμού, ίσως χρειαστεί να επικοινωνήσετε με κάποιον πιστοποιημένο συνεργάτη της Microsoft (Microsoft Certified Partner) ή να χρησιμοποιήσετε τις συμβουλευτικές υπηρεσίες Microsoft Advisory Services. Για περισσότερες πληροφορίες, επισκεφθείτε αυτές τις τοποθεσίες της Microsoft στο Web:

Πιστοποιημένοι συνεργάτες της Microsoft -https://partner.microsoft.com/global/30000104

Συμβουλευτικές υπηρεσίες της Microsoft-http://support.Microsoft.com/GP/advisoryservice

Για περισσότερες πληροφορίες σχετικά με τις επιλογές υποστήριξης που είναι διαθέσιμες και τον τρόπο επικοινωνίας με τη Microsoft, επισκεφθείτε την ακόλουθη τοποθεσία της Microsoft στο Web:http://support.microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMS

Παράδειγμα μακροεντολής

Για παράδειγμα, ας υποθέσουμε ότι μια εταιρεία πραγματοποιεί τέσσερα προϊόντα, καθένα από τα οποία είναι διαθέσιμη σε τρία μεγέθη. Για να χρησιμοποιήσετε το δείγμα κώδικα που παρέχεται παρακάτω, δημιουργήστε ένα φύλλο εργασίας του Excel που περιέχει τις ακόλουθες πληροφορίες:

   A1:Cust. B1: Product  C1:Size  D1: E1:        F1:Sml  G1:Med  H1:Lrg
   A2: J    B2: widget   C2: sml  D2: E2: Doodad F2:     G2:     H2:
   A3: B    B3: gizmo    C3: med  D3: E3: Gizmo  F3:     G3:     H3:
   A4: C    B4: doodad   C4: sml  D4: E4: Thing  F4:     G4:     H4:
   A5: F    B5: gizmo    C5: lrg  D5: E5: Widget F5:     G5:     H5:
   A6: M    B6: doodad   C6: lrg  D6: E6:        F6:     G6:     H6:
   A7: A    B7: gizmo    C7: sml  D7: E7:        F7:     G7:     H7:
   A8: A    B8: doodad   C8: lrg  D8: E8:        F8:     G8:     H8:
   A9: H    B9: gizmo    C9: sml  D9: E9:        F9:     G9:     H9:
   A10:J    B10:widget   C10:med  D10:E10:       F10:    G10:    H10:
				
Ας υποθέσουμε ότι θέλετε να δημιουργήσετε έναν πίνακα που αναγράφει τους πελάτες για κάθε προϊόν σε κάθε μέγεθος. Επειδή ένας Συγκεντρωτικός πίνακας συνοψίζει πάντα με κάποιο τρόπο (δηλαδή, χρησιμοποιώντας τη συνάρτηση Sum, Count, Μέσος όρος ή κάποια άλλη συνάρτηση), δεν υπάρχει τρόπος που μπορείτε να χρησιμοποιήσετε την εντολή Συγκεντρωτικού Πίνακα για την πραγματοποίηση της εργασίας, από τη δημιουργία ξεχωριστές στήλες για κάθε πελάτη. Ο ακόλουθος κώδικας χρησιμοποιεί τις επικεφαλίδες στήλης στη γραμμή 1 και οι κεφαλίδες γραμμών στη στήλη E για να πραγματοποιήσετε την εργασία.
   Sub BuildTable()

       Dim ListRow, TableRow, TableColumn As Integer
       Dim TableEntry As String
       Dim CellToFill As Range

       Range("F2:H5").ClearContents
       ListRow = 2

       Do Until Cells(ListRow, 1).Value = ""

           ' Get table entry from first column of list.
           TableEntry = Cells(ListRow, 1).Value
           ' Get position of product name within range of row titles.
           TableRow = Application.Match(Cells(ListRow, 2), _
               Range("E2:E5"), 0)
           ' Get position of product size within range of column titles.
           TableColumn = Application.Match(Cells(ListRow, 3), _
               Range("f1:h1"), 0)

           Set CellToFill = Range("e1").Offset(TableRow, TableColumn)

           ' If there's already an entry in the cell,
           ' separate it from the new entry with a comma and space.
           If CellToFill.Value <> "" Then CellToFill.Value = _
               CellToFill.Value & ","
           ' Add the new entry to the cell.
           CellToFill.Value = CellToFill.Value & TableEntry

           ListRow = ListRow + 1


       Loop

   End Sub
				
Τα αποτελέσματα του φύλλου εργασίας εμφανίζεται ως εξής:
   E1:         F1:Sml  G1:Med  H1:Lrg
   E2: Doodad  F2:C    G2:     H2:M,A
   E3: Gizmo   F3:A,H  G3:B    H3:F
   E4: Thing   F4:     G4:     H4:
   E5: Widget  F5:J    G5:J    H5:
				
ΣΗΜΕΙΩΣΗ: Είναι ακόμα υπόκεινται στο όριο των 255 χαρακτήρες ανά κελί. Επίσης, η μακροεντολή δεν διαμορφώσετε τις στήλες για να εμφανίσετε όλες τις πληροφορίες σε κάθε κελί. Μπορεί να θέλετε να χρησιμοποιήσετε μορφή, στήλη ή αναδίπλωση κειμένου για να το κάνετε αυτό.

Ιδιότητες

Αναγν. άρθρου: 213799 - Τελευταία αναθεώρηση: Παρασκευή, 23 Σεπτεμβρίου 2011 - Αναθεώρηση: 4.0
Λέξεις-κλειδιά: 
kbdtacode kbhowtomaster kbprogramming kbmt KB213799 KbMtel
Μηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:213799

Αποστολή σχολίων