Καλημέρα σε όλους!
Η λύση με χρήση τύπων είναι αυτή που πρότεινε ο Μανώλης.
Επειδή όμως πρόκειται για αναδιπλωμένο κείμενο που περιέχει τον
χαρακτήρα 10 (= line feed, στην Excel= Char(10) ,
στην VB = vbLF ή Chr(10) ) ,
θα είχαμε πιο ακριβή αποτελέσματα αν στο κελί B1 τροποποιούσαμε τον τύπο ως εξής:
=TRIM(SUBSTITUTE(SUBSTITUTE(A1;CHAR(10);" ");" ";" "))
Χρησιμοποιώντας τον παραπάνω τύπο και μετατρέποντας το αποτέλεσμα του σε τιμή (Αντιγραφή > Ειδική επικόλληση>Τιμές),
μπορούμε με τη μέθοδο "
Κείμενο σε στήλες" και με τη βοήθεια του οδηγού να διασπάσουμε το
περιεχόμενο του κελιού σε περισσότερες στήλες.
Αυτό θα μπορούσε να γίνει και με
VBA πχ:
Κώδικας:
Sub Text2Columns_1()
Range("B1:B100").TextToColumns _
Destination:=Range("C1"), _
DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=True, _
Tab:=False, _
Semicolon:=False, _
Comma:=False, _
Space:=True, _
Other:=False
End Sub
Εγώ προσωπικά θα χρησιμοποιούσα τον παρακάτω κώδικα που παίρνει δεδομένα κατευθείαν από τη στήλη
A χωρίς τη διαδικασία με τύπους.
Κώδικας:
Sub Text2Columns_2()
Dim x As Variant, c As Range
For Each c In Range("A1:A100")
If Not IsEmpty(c) Then
With c
x = Replace(Replace(.Value, vbLf, " "), " ", " ")
x = Split(x)
.Offset(, 1).Resize(, UBound(x) + 1).Value = x
End With
End If
Next
End Sub
Φιλικά
Τάσος