我有一个像这样的电子表格:
A栏
Blank
Blank
Something
Fax Number:
Blank
Blank
Blank
Next non empty row
我使用以下VBA代码查找我的价值'传真号码:'在A栏:
Dim Rng As Range
Set Rng = Range("A:A")
Rng.Select
Set cell = Selection.Find(What:="Fax Number:", After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)
If cell Is Nothing Then
'do it something
Else
Dim MyRange As Object
Set MyRange = cell.Offset(1, 0).End(xlDown).Row
MyRange.EntireRow.Delete
End If
如果找到,则应删除传真号码下面的所有空行,直到下一个非空行。
给出这个结果:
Column A
Blank
Blank
Something
Fax Number:
Next non empty row
有人能告诉我出错的地方吗?我得到一个未定义错误的对象:
Set MyRange = cell.Offset(1, 0).End(xlDown).Row
。
答案 0 :(得分:0)
尝试使用以下代码,而不使用Selection
和Option Explicit
Sub UseFind()
Dim Rng As Range, C As Range
Set Rng = Range("A:A")
Set C = Rng.Find(What:="Fax Number:", After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)
If C Is Nothing Then
'do it something
Else
Dim LastRow As Long
Dim MyRange As Range
LastRow = C.Offset(1, 0).End(xlDown).Row - 1 '<-- get last row of Blank
Set MyRange = Range(C.Offset(1, 0), Cells(LastRow, C.Column)) '<-- set the deleted range
MyRange.EntireRow.Delete
End If
End Sub
。
'\n'