
Option Explicit
Sub splitta()
Dim vSplit As Variant
Dim i As Long, x As Long, k As Long
x = Range("A" & Rows.Count).End(xlUp).Row
For i = 2 To 100
vSplit = Split(Cells(i, 1), Chr(10))
If UBound(vSplit) > 0 Then
For k = 0 To UBound(vSplit)
Cells(i, k + 2) = vSplit(k)
Next k
Else
Cells(i, 2) = vSplit(0)
End If
Next i
End Sub |
Lato Cella in B2 scriverai:
=Dividi_Titoli($A2;RIF.COLONNA())
in un modulo generico:
Option Explicit
Public Function Dividi_Titoli(ByVal rCella As Range, ByVal iCol As Integer) As String
Dim vSplit As Variant
vSplit = Split(rCella, Chr(10))
If iCol - 2 <= UBound(vSplit) Then
Dividi_Titoli = vSplit(iCol - 2)
Else
Dividi_Titoli = ""
End If
End Function
|
Sub Macro1()
Range("B1").Select
ActiveCell.FormulaR1C1 = "=SUBSTITUTE(RC[-1],CHAR(10),"""")"
Range("B1").Select
Selection.Copy
Range("B1:B" & Cells(Rows.Count, 1).End(xlUp).Row).Select
ActiveSheet.Paste
Columns("B:B").Select
Application.CutCopyMode = False
Selection.Copy
Columns("C:C").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Selection.TextToColumns Destination:=Range("C1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
:="", FieldInfo:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1)), _
TrailingMinusNumbers:=True
End Sub
|
Option Explicit
Sub splitta()
Dim vSplit As Variant
Dim i As Long, x As Long, k As Long, z As Long
x = Range("A" & Rows.Count).End(xlUp).Row
For i = 2 To x
vSplit = Split(Cells(i, 1), Chr(10))
If UBound(vSplit) > 0 Then
For k = 0 To UBound(vSplit)
z = Range("B" & Rows.Count).End(xlUp).Row + 1
Cells(z, 2) = vSplit(k)
Next k
Else
z = Range("B" & Rows.Count).End(xlUp).Row + 1
Cells(z, 2) = vSplit(0)
End If
Next i
End Sub
|
Sub test()
Dim R As Long, I As Long, S As Variant, Cella As Range
Application.ScreenUpdating = False
R = 2
For Each Cella In Range("A2", Range("A2").End(xlDown))
S = Split(Cella, vbLf)
For I = LBound(S) To UBound(S)
Cells(R, 2) = S(I)
R = R + 1
Next I
Next Cella
Application.ScreenUpdating = True
End Sub
|
Option Explicit
Sub splitta()
Dim vSplit As Variant
Dim i As Long, x As Long, k As Long, z As Long
x = Range("A" & Rows.Count).End(xlUp).Row
Application.EnableEvents = False
For i = 2 To x
vSplit = Split(Cells(i, 1), Chr(10))
For k = 0 To UBound(vSplit)
z = Range("B" & Rows.Count).End(xlUp).Row + 1
Cells(z, 2) = vSplit(k)
Next k
Next i
Application.EnableEvents = True
End Sub
|
