打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
​想保留包含如下字样的行,其它行删除,怎么用VBA实现
想保留包含如下字样的行,其它行删除,怎么用VBA实现。

大塔
长新
立富
方正

因为经常看这种统计表,只需要包含上面这些文字的行,其它行删除,筛选能实现
但每次都筛选比较麻烦,如果能VBA实现会方便很多。

Sub panda()'方法1

Dim arr, brr, i&, Arow&, str

arr = Range("d2:d" & Cells(Rows.Count, 2).End(3).Row)

Arow = UBound(arr, 1)

ReDim brr(1 To Arow)

    For i = 1 To UBound(arr)

        For Each str In Array("大塔", "长新", "立富", "方正", "科")

            If arr(i, 1) Like "*" & str & "*" Then brr(i) = arr(i, 1): Exit For Else brr(i) = ""

        Next

    Next

[d2].Resize(Arow, 1) = Application.Transpose(brr)

Columns(4).SpecialCells(xlCellTypeBlanks).EntireRow.Delete

End Sub


Sub test()'方法2

  Dim r%, i%

  Dim arr

  Dim reg As New RegExp

  Dim rng As Range

  With reg

    .Global = True

    .Pattern = "大塔|长新|立富|方正|科"

  End With

  With Worksheets("sheet1")

    r = .Cells(.Rows.Count, 4).End(xlUp).Row

    arr = .Range("d1:d" & r)

    Set rng = .Rows(r + 1)

    For i = 2 To UBound(arr)

      If Not reg.test(arr(i, 1)) Then

        Set rng = Union(rng, .Rows(i))

      End If

    Next

    rng.Delete

  End With

End Sub


Sub zz()'方法三
    arr = Sheet1.Range("A1").CurrentRegion: m = 1
    For i = 2 To UBound(arr)
        If InStr(arr(i, 4), "大塔") > 0 Or InStr(arr(i, 4), "长新") > 0 Or InStr(arr(i, 4), "立富") > 0 _
            Or InStr(arr(i, 4), "方正") > 0 Or InStr(arr(i, 4), "科") > 0 Then
            m = m + 1
            For j = 1 To UBound(arr, 2)
                arr(m, j) = arr(i, j)
            Next
        End If
    Next
    Sheet2.Range("A1").Resize(m, UBound(arr, 2)) = arr
End Sub

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
用VBA代码查询两列数据差异
VBA常用小代码202:汇总多个工作簿首个工作表数据到总表
《神奇的VBA》编程:批量拆分单元格数据
3段VBA代码,从此不再「复制-粘贴」
自己写的,用VBA提取多列唯一值,有点开心,小成就
VBA中的Ubound函数 | VBA实例教程
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服