将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))
- input要在单元格A1中拆分的内容。
- 将其粘贴到单元格B1: = MID($ A $ 1,COLUMN() – COLUMN($ B $ 1)+1,1)
- 拖动到右侧
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
如何使用它:
- select目的地范围(例如
B1:F1
) - 用选定的范围在公式栏中input公式
=SplitWord(A1)
- 按CTRL + SHIFT + ENTER来评估它
如果一列中的目的地范围(例如B1:B5
)使用=TRANSPOSE(SplitWord(A1))
把它放在任何第一行单元格中:= MID($ A $ 1,ROW(),1)