如题所述
dim Arr as variant
arr=split(Rng,str)
my=arr
end function
公式=my(单元格,"分隔符号")
这是一个数组来的,对公式使用F9可得出来追问
如果A1的内容是 asd#sd45#fgt, 然后在B1中输入=My(A1,1)就会得到asd吗?然后输入=My(A1,2)就会得到sd45吗?或者在B1中输入一个公式,然后向右拖就能得到公式的吗?
追答公式应该=index(my(a1,"#"),row(a1))
学过数组吗??这是数组来的
把分列用在VBA上面一样是可以
例如某个工作表A1=12345#1235#123
Sub My()
With ActiveSheet
.Range("A1").TextToColumns Destination:=.[A1], DataType:=xlDelimited, _
other:=True, otherchar:="#"
End With
End Sub
'F5运行代码
注意分割单元格的右面不要有内容,否则会被覆盖;如有,先插入足够的空列。
请说明清楚!追问
都是以 # 这个符号为分割的
追答分列法:
选中分割的整列---数据---分列---(分隔符号)---下一步--分割符号 点"其他" 输入#---下一步--完成。
公式法:
假设文本 a#de#dr#112# 在 A1单元格
B1公式右拉即可!
=TRIM(MID(SUBSTITUTE($A1,"#",REPT(" ",99)),COLUMN(A1)*99-98,99))
B1公式下拉的话
=TRIM(MID(SUBSTITUTE($A1,"#",REPT(" ",99)),row(A1)*99-98,99))
公式有些复杂了,能解释一下吗?还有,我觉得复杂的东西还不如用vba来实现,以后下次直接调用vba就行了,不用自己再输入复杂的公式了,那么用vba如何实现呢?
追答不推荐使用VBA 直接用分列法即可!