求高手写 EXCEL中的不规则字符串中提取前三个数字的自定义函数
求高手写不规则字符串中提取前三个数字的自定义函数(提取第一个的函数就命名为TQSZ1,提取第二个的函数就命名为TQSZ2,提取第三个的函数就命名为TQSZ3)例:ABCD...
求高手写 不规则字符串中提取前三个数字的自定义函数(提取第一个的函数就命名为TQSZ1,提取第二个的函数就命名为TQSZ2,提取第三个的函数就命名为TQSZ3)
例: A B C D
1 AAA12BBB33CCC99DDD888 =TQSZ1(A1) =TQSZ2(A1) =TQSZ3(A3)
2 人87口13手44上999中3434下777 =TQSZ1(A1) =TQSZ2(A1) =TQSZ3(A3)
显示结果为
A B C D
1 AAA12BBB33CCC99DDD888 12 33 99
2 人87口13手44上999中3434下777 87 13 44 展开
例: A B C D
1 AAA12BBB33CCC99DDD888 =TQSZ1(A1) =TQSZ2(A1) =TQSZ3(A3)
2 人87口13手44上999中3434下777 =TQSZ1(A1) =TQSZ2(A1) =TQSZ3(A3)
显示结果为
A B C D
1 AAA12BBB33CCC99DDD888 12 33 99
2 人87口13手44上999中3434下777 87 13 44 展开
展开全部
在Visual Basic Application中编辑器中写:
function TQSZ1(str)
on error goto errTQSZ
dim m as integer
str=str & " "
m=0
for i = 1 to len(str)
if asc(mid(str,i))>47 and asc(mid(str,i))<58 then
if m=0 then m=i
else
if m>0 then
TQSZ1=mid(str,m,i-m)
exit function
end if
end if
next
exit function
errTQSZ:
TQSZ1="找不到符合条件的段"
end function
function TQSZ2(str)
on error goto errTQSZ
dim m as integer
str=str & " "
m=-2
for i = 1 to len(str)
if asc(mid(str,i))>47 and asc(mid(str,i))<58 then
if m=-2 then m=-1
if m=0 then m=i
else
if m=-1 then m=0
if m>0 then
TQSZ2=mid(str,m,i-m)
exit function
end if
end if
next
exit function
errTQSZ:
TQSZ2="找不到符合条件的段"
end function
function TQSZ3(str)
on error goto errTQSZ
dim m as integer
str=str & " "
m=-4
for i = 1 to len(str)
if asc(mid(str,i))>47 and asc(mid(str,i))<58 then
if m=-4 then m=-3
if m=-2 then m=-1
if m=0 then m=i
else
if m=-3 then m=-2
if m=-1 then m=0
if m>0 then
TQSZ3=mid(str,m,i-m)
exit function
end if
end if
next
exit function
errTQSZ:
TQSZ3="找不到符合条件的段"
end function
function TQSZ1(str)
on error goto errTQSZ
dim m as integer
str=str & " "
m=0
for i = 1 to len(str)
if asc(mid(str,i))>47 and asc(mid(str,i))<58 then
if m=0 then m=i
else
if m>0 then
TQSZ1=mid(str,m,i-m)
exit function
end if
end if
next
exit function
errTQSZ:
TQSZ1="找不到符合条件的段"
end function
function TQSZ2(str)
on error goto errTQSZ
dim m as integer
str=str & " "
m=-2
for i = 1 to len(str)
if asc(mid(str,i))>47 and asc(mid(str,i))<58 then
if m=-2 then m=-1
if m=0 then m=i
else
if m=-1 then m=0
if m>0 then
TQSZ2=mid(str,m,i-m)
exit function
end if
end if
next
exit function
errTQSZ:
TQSZ2="找不到符合条件的段"
end function
function TQSZ3(str)
on error goto errTQSZ
dim m as integer
str=str & " "
m=-4
for i = 1 to len(str)
if asc(mid(str,i))>47 and asc(mid(str,i))<58 then
if m=-4 then m=-3
if m=-2 then m=-1
if m=0 then m=i
else
if m=-3 then m=-2
if m=-1 then m=0
if m>0 then
TQSZ3=mid(str,m,i-m)
exit function
end if
end if
next
exit function
errTQSZ:
TQSZ3="找不到符合条件的段"
end function
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询