我有一个不同长度的字符串。我想把它们分成单个单元格,长度为3个字符。
ABCCBA
的单元格应该在2个不同的单元格中结束ABC
CBA
。
ABCDABCDAB
的单元格应该在4个不同的单元格中结束ABC
DAB
CDA
B
。
有没有方便的方法呢?
我在看
' Finding number of cells
Segments = WorksheetFunction.RoundUp(Len(Range("A1").Value) / 3, 0)
' Split base on character length
For n = 1 to Segments
Cells(2, n) = Range("A1").Characters(n, 3)
Next n
但它似乎不起作用。
答案 0 :(得分:1)
一个简单的宏,用于将字符串拆分为3个字母字符串并写入数据范围旁边的列
Sub Split()
Dim Checkcol As Integer
Dim currentRowValue As String
Dim rowCount As Integer
Dim splitval As Integer
Dim i As Integer, j As Integer
Checkcol = 1 'Denotes A column
rowCount = Cells(Rows.Count, Checkcol).End(xlUp).Row
For currentRow = 1 To rowCount
currentRowValue = Cells(currentRow, Checkcol).Value
splitval = Int(Len(currentRowValue) / 3) + 1 'Find the number of 3 letter strings
j = 0
For i = 1 To splitval 'Loop through each value and write in next columns
j = (i - 1) * 3 + 1
Cells(currentRow, Checkcol + i).Value = Mid(currentRowValue, j, 3)
Next
Next
End Sub
答案 1 :(得分:0)
如果您对公式感到满意,假设您的数据位于单元格A2中,并且您希望在单元格B2中向右执行公式。
B2中的公式:
=MID($A2,(COLUMNS($B$2:B2)-1)*3+1,3)
将其复制并尽可能多地复制。