我有一列 1542 行。
我想将其分成多列,每列的行数相同或接近相同。如果可能的话,也可以用不同的方法来实现...
即把它分成4,5,6或更多列我的数据是IP地址所以它将是下面每个单元格中的文本是我的数据样本
10.11.6.1
10.11.8.1
10.11.11.1
10.11.22.1
10.11.26.1
10.11.32.1
10.11.35.1
10.11.38.1
10.18.8.1
10.18.14.1
10.18.19.1
10.18.24.1
10.18.25.1
10.18.27.1
10.18.73.1
10.18.86.1
10.18.88.1
10.19.8.1
10.19.19.1
10.19.29.1
10.19.31.1
10.19.43.1
10.19.54.1
10.19.57.1
10.19.65.1
答案1
一个简单的 VBA 脚本,用于获取选定单元格中的值并将其分成单独的单元格:
Sub Macro1()
Dim rCell As Range, cString As String, cr As String
Set rCell = Selection(1)
a = rCell.Value
cr = Chr(13)
If InStr(a, cr) > 0 Then
ary = Split(a, cr)
For i = 1 To UBound(ary)
rCell.Offset(1, 0).EntireRow.Insert
Next i
For i = 0 To UBound(ary)
rCell.Offset(i, 0).Value = ary(i)
Next i
End If
End Sub
此宏会查找 char(13),回车符,并根据查找结果添加新单元格。如果此方法无效,则可能是 char(10),换行符,因此只需更改宏中的数字即可。
这个宏部分抄袭自本论坛和其他论坛上的其他帖子
答案2
尝试一下:
Sub marine()
Dim i As Long, j As Long, k As Long
Dim v As String, Old As String
Dim N As Long
N = Cells(Rows.Count, "A").End(xlUp).Row
j = 2
i = 1
Cells(1, 2) = Cells(1, 1)
Old = Split(Cells(i, 1), ".")(1)
For k = 2 To N
v = Cells(k, 1).Value
If Split(v, ".")(1) <> Old Then
j = j + 1
i = 1
Old = Split(v, ".")(1)
Else
i = i + 1
End If
Cells(i, j) = v
Next k
End Sub