使用多个条件查找和删除行

问题描述 投票:1回答:2

我有一个学生记录列表,在B列中列出了姓氏,在C列中列出了姓氏。在用户表单上是一个搜索功能,它将学生姓名填写到值surname.value和firstname.value中,然后我想要命令按钮以在记录列表中找到该人并删除整行。我使用了与消息框一起使用的编码,然后将消息框更改为删除行,但现在不起作用。

Private Sub CommandButton1_Click()

Dim ws As Worksheet
Set ws = Worksheets("-student records no CVI")


     Dim rngFound As Range
    Dim strFirst As String
    Dim strID As String
    Dim strDay As String

    strID = Surname.Value
    strDay = Firstname.Value

    Set rngFound = Columns("B").Find(strID, Cells(Rows.Count, "B"), xlValues, xlWhole)
    If Not rngFound Is Nothing Then
        strFirst = rngFound.Address
        Do
            If LCase(Cells(rngFound.row, "C").Text) = LCase(strDay) Then
                'Found a match
                ws.Rows(rngFound.row).EntireRow.Delete

            End If
            Set rngFound = Columns("B").Find(strID, rngFound, xlValues, xlWhole)
        Loop While rngFound.Address <> strFirst
    End If

    Set rngFound = Nothing

End Sub
excel vba
2个回答
0
投票

我绝不是专业人士,我不知道这是否是实现此目标的最佳方法,但我会这样做。


3
投票

使用Autofilter删除记录的简单方法:

© www.soinside.com 2019 - 2024. All rights reserved.