VBA - 根据长度将单元格字符串分解为单个单元格

时间:2017-10-12 04:10:47

标签: excel vba excel-vba character string-length

我有一个不同长度的字符串。我想把它们分成单个单元格,长度为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

但它似乎不起作用。

2 个答案:

答案 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)

将其复制并尽可能多地复制。