VBA按找到的单元格值删除行

时间:2018-02-06 11:59:24

标签: excel vba

我有这个代码,我希望按单元格值删除所有行,其中包含" BSB *" (因此有像BSB 1,2等的值)此代码部分工作。它仅删除每个包含BSB的第二个单元。所以我有BSB 2,4等。我想删除在特定列ofc中存在值BSB的所有行。 p.s english是我的第二语言所以请让我知道我是否需要澄清一些事情

    Option Explicit
Sub PrList()

Dim wb As Workbook
Dim ws As Worksheet
Dim r As Range
Dim i As Range


Set wb = Workbooks.Open("?????")
Set ws = wb.Worksheets("owssvr")

With ws.Range("A1").CurrentRegion
    .Find(What:="Product_Number", LookAt:=xlWhole).Name = "Product_Number"
    .Find(What:="Product_Status", LookAt:=xlWhole).Name = "Product_Status"
    .Find(What:="Group_of_product", LookAt:=xlWhole).Name = "Group_of_product"
End With

Set i = ws.Range("Product_Number", Range("Product_Number").End(xlDown))

For Each r In i
    If r Like "BSB*" Then
        r.Rows.Delete
    End If
Next r


End Sub

1 个答案:

答案 0 :(得分:2)

试试这个

Option Explicit
Sub NAPP_PrList()

    Dim wb As Workbook
    Dim ws As Worksheet
    Dim r As Range
    Dim i As Range
    Dim j as Long

    Set wb = Workbooks.Open("?????")
    Set ws = wb.Worksheets("owssvr")

    With ws.Range("A1").CurrentRegion
        .Find(What:="Product_Number", LookAt:=xlWhole).Name = "Product_Number"
        .Find(What:="Product_Status", LookAt:=xlWhole).Name = "Product_Status"
        .Find(What:="Group_of_product", LookAt:=xlWhole).Name = "Group_of_product"
    End With

    Set i = ws.Range("Product_Number", Range("Product_Number").End(xlDown))

    For j = i.Rows.Count To 1 Step -1
        If i(j, 1) Like "BSB*" Then i(j, 1).EntireRow.Delete
    Next

End Sub