| 网站首页 | 业界新闻 | 群组 | 人才 | 技术文章 | 下载频道 | 博客 | 代码贴 | 编程论坛
共有 300 人关注过本帖
标题: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}}",大神请帮忙解答下,谢谢
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
等 级:版主
威 望:183
帖 子:4033
专家分:24873
注 册: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: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:51
帖 子:545
专家分:3117
注 册: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
附件: 您没有浏览附件的权限,请 登录注册

QQ    2653043392
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







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

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