VBA函数来分割逗号分隔的单元格
我需要在由逗号分隔的单元格中分割一些数据。 我知道这可以是文本列Excelfunction,但我需要它在VBA,因为这个过程必须是自动的。 我创build了这个function:
Function SepararDatos(splitVal As Variant) Dim totalVals As Long splitVal = Split(splitVal, ",") totalVals = UBound(splitVal) Range(Cells(ActiveCell.Row, ActiveCell.Column + 1), Cells(ActiveCell.Row, ActiveCell.Column + 1 + totalVals)).Value = splitVal End Function
但我不知道为什么它不工作。 如果我把它改成一个sub
它的效果很好,但这不是我所需要的。 有人可以告诉我如何改变function工作。 也是子返回string,但我想返回数字。
用作公式的UDF不能影响另一个单元格的值。 所以你有两种方法可以使用:
数组input:
Function SepararDatos(splitval As String) Dim splitval2() As String splitval2 = Split(splitval, ",") SepararDatos = splitval2 End Function
然后突出显示足够的输出单元 第一个是积极的:
然后在公式栏中input:
=--SepararDatos(A1)
而不是input命中Ctrl-Shift-Enter到数组input公式。 Excel会将公式放在所有三个单元格中,周围都是{}
。 这些将被链接在一个数组中。
把它变成数字,然后你可以用你想要的方式进行格式化
第二种方法,需要第二个标准:
Function SepararDatos(splitval As String, i As Long) Dim splitval2() As String splitval2 = Split(splitval, ",") SepararDatos = splitval2(i - 1) End Function
然后在你input的第一个单元格中:
=--SepararDatos($A$1,COLUMN(A:A))
然后拖过去。 --
把string变成数字。
第三种方法是使用本机公式:
=--TRIM(MID(SUBSTITUTE($A$1,",",REPT(" ",999)),(COLUMN(A:A)-1)*999+1,999))
然后拖过去: