28-03-14, 12:26
|
| Διαχειριστής Όνομα: Τάσος Φιλοξενιδης Έκδοση λογισμικού Office: Ms-Office 365 Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική | | Εγγραφή: 21-10-2009
Μηνύματα: 2.011
| |
Καλημέρα!
Φίλε Χρήστο,
όταν θέλεις να διαχειρίζεσαι δεδομένα χωρίς να καταφεύγεις σε ακραίες λύσεις, θα πρέπει να φροντίζεις να είναι "καθαρά" ευθύς εξαρχής.
Θα έπρεπε όταν συνένωνες τους αριθμούς αυτούς να λάβεις υπόψη σου και την παιρετέρω επεξεργασία τους; Λύση: Υπό την προϋπόθεση ότι τα ονόματα είναι χωρισμένα με κόμμα (Παπαγάλος Χρήστος , Αετός Παναγιώτης)
Άλλαξε στον κώδικα τη γραμμή: ArrExams = Split(WorksheetFunction.Trim(c.Offset(, 1).Value))
με τη γραμμή: ArrExams = Split(WorksheetFunction.Trim(c.Offset(, 1).Value), " ,") Συμπληρωματικά:
Όλος ο κώδικας με δυνατότητα αφαίρεσης κενών στην αρχή και στο τέλος του ονόματος: Κώδικας: Sub TranansposeRecordDetails()
Dim rng As Range, c As Range, ArrExams As Variant, i As Integer, LastRow As Long
Set rng = Range(Cells(3, 1), Cells(Rows.Count, 1).End(xlUp))
For Each c In rng
If Trim(c.Offset(, 1).Value) = vbNullString Then
c.Offset(LastRow, 3).Value = "'" & c.Value
Else
ArrExams = Split(WorksheetFunction.Trim(c.Offset(, 1).Value), ",")
For i = 0 To UBound(ArrExams)
c.Offset(LastRow + i, 3).Value = "'" & Trim(c.Value)
c.Offset(LastRow + i, 4).Value = "'" & Trim(ArrExams(i))
Next
LastRow = LastRow + i - 1
End If
Next
End Sub
Φιλικά
Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών
Τελευταία επεξεργασία από το χρήστη Tasos : 29-03-14 στις 10:11.
|