发布网友 发布时间:2022-07-26 14:19
共5个回答
热心网友 时间:2023-10-20 20:56
最简单的办法:
1、首先自定义一个函数,代码如下:
------------------
Option Compare Text
Function FrSpace(ByVal rng As Range, ByVal T As String)'函数的名称自定义为“FrSpace”
Dim i%, k%, str$, Position%, CountSpace%
Dim Arr() As String
k = 0
str = rng
For i = 1 To Len(str)
If Mid(str, i, 1) = T Then
ReDim Preserve Arr(k)
Arr(k) = i
k = k + 1
End If
Next i
CountSpace = Arr(k - 2)
FrSpace = Left(str, CountSpace - 1)
End Function
-----------------------
2、当函数一旦创建后,就可以象excel的内置函数一样直接使用了。如:=FrSpace(A1," ")
3、该函数的参数介绍:
从函数自定义的第二行就不难看出撰函数的参数了。
参数(单元格对象,文本对象)
该函数的参数由两部分组成,前一个为单元格对象,后一个为你想要确定的文本对象。
由此可知,该函数不仅可以对空格,也可以对其它的文本进行同样的求解,增强了函数的适用性。
追问代码有问题,标黄部分出错,截取的不是最后一个空格之前的全部内容,B5也出错了,全部都截取了。
热心网友 时间:2023-10-20 20:56
在B1单元格输入以下公式,然后向下填充公式
=LEFT(A1,FIND("座",SUBSTITUTE(A1," ","座",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))-1)))
详见附图
热心网友 时间:2023-10-20 20:57
B2=LEFT(A1,FIND("-",SUBSTITUTE(A1," ","-",LEN(A1)-LEN(SUBSTITUTE(A1," ",))))-1)向下复制
热心网友 时间:2023-10-20 20:57
如果最后一个空格后面字符串长度是固定的话,可以用函数解决,否则必须用VBA解决热心网友 时间:2023-10-20 20:58
=LEFT(A1,LEN(A1)-FIND(" ",A1)+1)