标题:VBA 里面函数抓取字符串
只看楼主
江小白
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2017-9-2
结帖率:100%
已结贴  问题点数:20 回复次数:5 
VBA 里面函数抓取字符串
以下字符串:31X9.50R16      106X109.50R16      165R13    185/60R16      P135/45R15    最前面两个字符串当中9.50  109.50的整数位为不固定位数,怎样用VBA函数形式抓取话红线部分,所有字符串栏位为"{{A65A}}",大神请帮忙解答下,谢谢
搜索更多相关主题的帖子: VBA 函数 字符串 位数 形式 
2017-09-02 23:30
江小白
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2017-9-2
得分:0 
帮忙顶起来,大神来解答
2017-09-02 23:33
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4912
专家分:29900
注 册:2008-10-15
得分:7 
先查找 X 的位,如果没找到,设为1
a=instr(1,s,"X")+1
查找 / 和 R 和位置
b=instr(1,s,"/")
c=instr(1,s,"R")
以 二个位置中,非零 并且最小值
if b=0 then
  if  c=0 then
    d=len(s)
  else
    d=c
  end if
else
 if c=0 then
    d=b
  else
    if b>c then
       d=c
      else
        d=b
      endif
  endif
endif
得到了两位置了,后面自己搞定
手机写的代码,自己也琢磨下。

另外,这个判断根据你给出的条件写的,如果你最后一个例子是错的,那就整个代码错了。


授人于鱼,不如授人于渔
早已停用QQ了
2017-09-03 08:58
ZHRXJR
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:125
帖 子:1034
专家分:5519
注 册:2016-5-10
得分:7 

程序代码:
Dim P1 As Integer
AA = Array("31X9.50R16", "106X109.50R16", "165R13", "185/60R16", "P135/45R15")
Dim BB() As String, XX1 As Integer, XX2 As Integer, TT As Integer
P1 = UBound(AA)
ReDim BB(P1)
For I = 0 To P1
    If InStr(1, AA(I), "X") > 0 And InStr(1, AA(I), "R") > 0 Then
        XX1 = InStr(1, AA(I), "X")
        XX2 = InStr(1, AA(I), "R")
        TT = Len(AA(I))
        BB(I) = Mid(AA(I), XX1 + 1, XX2 - XX1 - 1)
    ElseIf InStr(1, AA(I), "R") > 0 Then
        XX1 = InStr(1, AA(I), "R")
        BB(I) = Left(AA(I), XX1 - 1)
    End If
    If InStr(1, AA(I), "/") > 0 Then
        XX1 = InStr(1, AA(I), "/")
        BB(I) = Left(AA(I), XX1 - 1)
    End If
    Text1.Text = Text1.Text & BB(I) & Space(6)
Next I

请不要选我!!!
2017-09-05 11:28
江小白
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2017-9-2
得分:0 
回复 4楼 ZHRXJR
帅哥,要用函数形式的写啊,但 是VB格式,例如 查找就用InStr,不用find了
2017-09-05 21:06
江小白
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2017-9-2
得分:0 
回复 3楼 风吹过b
最后一个直接输出135就好了,不用输出P

VBA 里面函数抓取字符串
以下字符串:31X9.50R16      106X109.50R16      165R13    185/60R16      P135/45R15    最前面两个字符串当中9.50  109.50的整数位为不固定位数,怎样用VBA函数形式抓取话红线部分,所有字符串栏位为"{{A65A}}",大神请帮忙解答下,谢谢
2017-09-05 21:09



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-480443-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.584858 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved