需要对象 错误:如果range.value="x"

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

我试图在if语句中使用从一个范围中获得的单元格值,但我得到了这个错误。

Run-time error '424':
Object required

这就是我的代码所要做的。

Set rng = ActiveSheet.Range("B:B").Find("hello").offset(1, 0)

test123 = False
While test123 = False
    If rng.Value = ""           <- error line
        rng.EntireRow.Delete
    Else
        test123 = True
    End If
Wend

任何帮助都将是很棒的,谢谢!

编辑:我的数据看起来像这样。我试图删除 "hello "和下一条非空白行之间的所有空白行。所以我的代码是搜索 "hello",然后将该行偏移1。

table 1

Row Header:
bye
hi
hello


thank you
excel vba
1个回答
0
投票

问题是当你删除第一行的时候 rng 已被删除,如果再次引用会出错。

Dim rng As Range
Set rng = ActiveSheet.Range("B:B").Find("hello")
If rng Is Nothing Then Exit Sub

Dim rw As Long
rw = rng.Row + 1

Do While ActiveSheet.Cells(rw, 2) = ""
    Rows(rw).Delete
Loop
© www.soinside.com 2019 - 2024. All rights reserved.