![]() |
Διαχωρισμός σε άλλες στήλες 1 Συνημμένο(α) Ο κώδικας εκτελείται αλλά στο τέλος χτυπάει. Ευχαριστώ. |
Καλημέρα Ο κώδικας είναι γραμμένος για να δουλεύει πάντα στις γραμμές 2 έως 7. Επειδή έχεις δύο ονόματα στο παράδειγμα, όταν τελειώσει με αυτά και δεν βρεί άλλα, φυσικό είναι να χτυπάει. Αυτό διορθώνεται αν βάλουμε: Κώδικας: On Error Resume NextΈχει όμως ένα μεγάλο σφάλμα στην διαχείριση των ονομάτων, αν έχει πληκτρολογήσει ο χρήστης κενά (Space) εκ παραδρομής, είτε στην αρχή είτε στο τέλος (πράγμα που διαπίστωσα ότι ισχύει) Το ΔΗΜΗΤΡΗΣ, ΚΟΝΤΟΣ, ακολουθείται από κενό... Θα πρότεινα να χρησιμοποιήσεις τον πιο κάτω κώδικα: Κώδικας: Sub SplitNames_Delimeter()Όπου Sh1 το κωδικό όνομα φύλλου. Ο κώδικας αυτός λειτουργεί σωστά αν: 1 Τα ονόματα είναι στην Α στήλη. Αν αλλάξει αυτό, αλλάζουμε τον κόκκινο αριθμό, με τον αριθμό στήλης. 2 Η μεταφορά γίνεται στις B - C Αν αλλάξει κάτι από αυτά, αλλάζουμε τους μπλε αριθμούς, με τους αριθμούς στηλών. 3 Διαχωριστικό είναι το , Αν αλλάξει, αλλάζουμε στην γραμμή Κώδικας: iPos = InStr(fName, ",")Παράδειγμα για διαχωριστικό - Κώδικας: iPos = InStr(fName, "-")Το διαχωριστικό ακολουθείται από ένα κενό (Space) Αν αλλάξει αυτό, θα πρέπει να προσαρμοστούν τόσο το Κώδικας: iPos = InStr(fName, ",")Κώδικας: Cells(i, 2).Value = Left(fName, iPos - 1)Κώδικας: iPos = InStr(fName, " ")Δεν υπάρχουν κενά ονόματα (γραμμές χωρίς δεδομένα) Αν πρέπει να υπάρχουν (;;;) τότε να γίνει και πάλι η χρήση του On Error Resume Next Τέλος... Εφ' όσον έχουμε μόνο επώνυμο και όνομα (χωρίς πατρώνυμο) η χρήση της Mid, μπορεί να αντικατασταθεί από την Right |
Ευχαριστώ πολύ! |
| Η ώρα είναι 09:33. |
Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.