Vba 无法检查范围是否为空

Vba 无法检查范围是否为空,vba,Vba,Excel2007 我卡住了 Private Sub check_status_correctness(a_row) Dim status_col_rng As Range Dim status_val As String Dim found_status As Range Set status_col_rng = Sheets("Settings").Columns(2) status_val = Sheets(MAIN_SHEET).Cells(a

Excel2007

我卡住了

Private Sub check_status_correctness(a_row)

    Dim status_col_rng As Range
    Dim status_val As String
    Dim found_status As Range

    Set status_col_rng = Sheets("Settings").Columns(2)
    status_val = Sheets(MAIN_SHEET).Cells(a_row, STATUS_COL)
    Set found_status = status_col_rng.Find(status_val, LookIn:=xlValues, LookAt:=xlWhole)

    If found_status Is Nothing Then
        Call announce_error(a_row, STATUS_COL)
    End If
End Sub
在断点处未找到任何状态。如果我仔细检查调试器中的find_状态,它似乎什么都没有。但就在那一刻,我发现你的身份并没有给我假

你能帮我理解怎么抓不到东西吗


您对
无任何内容的检查是正确的。如图所示,对象变量
found\u status
不是空的(或者换句话说,是分配给某个范围的)

要检查是否指定了对象变量,请执行以下操作:

Set r = ActiveSheet.Range("A1")
If Not r Is Nothing Then
    Debug.Print "r is assigned"
End If

您使用的代码是正确的,但根据您的硬拷贝,
found\u status
不是空的吗?FunThomas,谢谢。你帮了我很多。如果你把这当作一个回答,我很乐意接受。
Set r = ActiveSheet.Range("A1")
If Not r Is Nothing Then
    Debug.Print "r is assigned"
End If