Excel VBA - 基于列中的下一个非空单元格搜索/选择/删除范围

时间:2017-08-11 19:07:19

标签: excel vba excel-vba

我希望有人能够帮助我解决这个问题。

我的目的是让工作表搜索名称并找到它。我完成了以下代码没有问题:

Sub Removemember_Click()
MemberName = InputBox(Prompt:="Enter Member's Name")
Cells.Find(What:=MemberName, _
After:=ActiveCell, LookIn:=xlValues, LookAt:=xlPart, _
SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False).Activate
End Sub

我接下来需要做的是在“C”列中向下搜索,直到找到非空白单元格,然后选择搜索到的名称和下一个名称之间的所有行(但不包括下一个名称)。然后我需要删除(删除)行。 任何人都可以帮我一把吗?

1 个答案:

答案 0 :(得分:0)

以下代码提供了一种方法。理解后,根据需要进行修改并删除.select语句。

enter image description here

Option Explicit
Sub Removemember_Click()
Dim memberName As String
Dim startR As Range, endR As Range, rangeToDelete As Range
Set startR = ActiveSheet.Range("C1")
startR.Activate
memberName = InputBox(Prompt:="Enter Member's Name")
Set startR = Cells.Find(What:=memberName, _
After:=ActiveCell, LookIn:=xlValues, LookAt:=xlPart, _
SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False)
Set endR = startR.End(xlDown).Offset(-1, 0)
startR.Select
endR.Select
Set rangeToDelete = Rows(startR.Offset(1, 0).Row & ":" & endR.Row)
rangeToDelete.Select
rangeToDelete.Delete
End Sub