将字符串拆分为多个字符的功能

时间:2014-02-08 22:17:01

标签: excel vba excel-vba

我想创建一个自定义函数,它接受所选参数并将其内容拆分到不同的单元格上。

示例:

A1=ABCDE

成为

B1=A, C1=B, D1=C, E1=D, F1=E

所以这就是我的尝试:

Function SplitWord(Word)
NbCar = Len(Word) // get the number of cardinals of the text
SplitWord = Left(Word, 1) // put the first letter in the cell that called the function
t = NbCar - 1
For i = 1 To t
ActiveCell.Offset(0, i) = Right(Left(Word, i), 1)
Next
End Function

6 个答案:

答案 0 :(得分:3)

  1. 输入要在单元格A1中分割的内容。
  2. 将其粘贴到单元格B1中: = MID($ A $ 1,COLUMN() - COLUMN($ B $ 1)+1,1)
  3. 向右拖动

答案 1 :(得分:2)

您也可以使用简单的Excel公式执行此操作 - 将此单元格放在B1中并将其复制到C1-F1:

=MID(A1,COLUMN()-COLUMN($B$1)+1,1))

答案 2 :(得分:1)

尝试=MID($A1,COLUMNS($A$1:A$1),1),然后向左拖动它会来。

答案 3 :(得分:1)

1)将要拆分的文本放在单元格A1(image

2)然后将此函数粘贴到所需的任何单元格(image

=MID($A1;COLUMN(A1)-COLUMN($A1)+1;1)

3)将鼠标光标移至粘贴了上述功能(image)的单元格右下角的小块上

4)单击并按住填充手柄,然后向右拖动以填充系列(image

答案 4 :(得分:0)

从工作表调用此UDF时,无法修改UDF中的单元格(实际上有可能的方法,但它们很复杂,我不建议使用它们)。你可以改用这个功能:

Function SplitWord(Word As String) As String()
    Dim res() As String
    ReDim res(1 To Len(Word))
    For i = 1 To Len(Word)
        res(i) = Mid(Word, i, 1)
    Next
    SplitWord = res
End Function

如何使用

  1. 选择目的地范围(例如B1:F1
  2. 使用所选范围在公式栏=SplitWord(A1)
  3. 中输入公式
  4. CTRL + SHIFT + ENTER 进行评估
  5. 如果您在一列中的目标范围(例如B1:B5)使用=TRANSPOSE(SplitWord(A1))

答案 5 :(得分:0)

将其放在任何第一行单元格中: = MID($ A $ 1,ROW(),1)