我有一个学生记录列表,在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
我绝不是专业人士,我不知道这是否是实现此目标的最佳方法,但我会这样做。
使用Autofilter
删除记录的简单方法: