将string拆分为多个字符的function

我想要创build一个自定义函数,它将选定的参数并将其内容分割到不同的单元格中。

例如:

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 

你也可以用简单的Excel公式做到这一点 – 把这个单元格放在B1中,并将其复制到C1-F1:

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

Try =MID($A1,COLUMNS($A$1:A$1),1) ,然后拖动它就会到来。

从UDF中调用UDF时,不能修改UDF中的单元格(实际上有可能的方法,但是它们很复杂,我不build议使用它们)。 你可以使用这个function:

 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. select目的地范围(例如B1:F1
  2. 用选定的范围在公式栏中input公式=SplitWord(A1)
  3. CTRL + SHIFT + ENTER来评估它

如果一列中的目的地范围(例如B1:B5 )使用=TRANSPOSE(SplitWord(A1))

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