VBA提取指定区域特定值

初学VBA有个问题总是解决不了,跪求各位大神帮解答下;如下图A列单月格SIDRT是固定的,后面数值不固定,需要利用代码查找两段SID之间包含CA的RTXXX,然后赋值在C... 初学VBA有个问题总是解决不了,跪求各位大神帮解答下;如下图A列单月格SID RT 是固定的,后面数值不固定,需要利用代码查找两段SID之间包含CA的RTXXX,然后赋值在C列,自己写的执行不了,语法错误太多,辛苦帮看下; 展开
 我来答
阳光上的桥
2017-06-14 · 知道合伙人软件行家
阳光上的桥
知道合伙人软件行家
采纳数:21423 获赞数:65810
网盘是个好东东,可以对话和传文件

向TA提问 私信TA
展开全部

你的代码太简单了,我自己写了下面的代码:

Option Explicit

Sub 提取SID之间有CA的RT()
    Dim i, j, k, n, arr, sid1, sid2, ca
    帆桥n = Cells(Rows.Count, 1).End(xlUp).Row
    arr = Cells(1, 1).Resize(n, 1) '获取A列数据
    i = 1
    k = 1
    While i < n '扫描A列所有数据
        ca = False
        '.1 找到一个SID => sid1
        While Left(arr(i, 1), 3) <> "SID"
            i = i + 1
            If i > n Then Exit Sub
        Wend
        If i < n Then sid1 = i Else Exit Sub
        '.2 找到下一个SID => sid2
        i = i + 1
        While Left(arr(i, 1), 3) <态喊猛> "渗行SID"
            If Left(arr(i, 1), 2) = "CA" Then ca = True
            i = i + 1
            If i > n Then Exit Sub
        Wend
        If i < n Then sid2 = i Else Exit Sub
        '.3 根据中途属否遇到过CA,决定是否输出RT
        If ca Then
            For j = sid1 + 1 To sid2 - 1
                If Left(arr(j, 1), 2) = "RT" Then
                    Cells(k, 3) = arr(j, 1)
                    k = k + 1
                End If
            Next j
        End If
    Wend
End Sub

程序代码和例子数据:

执行完毕后的情况:

庆年工坊
2017-06-14 · 知道合伙人互联网行家
庆年工坊
知道合伙人互联网行家
采纳数:4233 获赞数:8928

向TA提问 私信TA
展开全部
Sub s()
    i = 1
    n = Sheet1.Cells(Rows.Count, 1).End(3).Row
    Do While i <= n
        ca = False
        Do Until Sheet1.Cells(i, 1) Like "SID*"
            If Sheet1.Cells(i, 1) Like "RT*" Then
                rt = Sheet1.Cells(i, 1)
      桥扒      ElseIf Sheet1.Cells(i, 1) Like "CA*" Then
                ca = True
            End If
  敏拍昌          i = i + 1
           贺烂 If i > n Then Exit Do
        Loop
        If ca Then
            k = k + 1
            Sheet1.Cells(k, 3) = rt
        End If
        i = i + 1
    Loop
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式