如果表列中没有数据,则显示消息框的代码

时间:2016-04-18 10:18:11

标签: excel excel-vba vba

我有一个包含2个组合框的用户表单。

两个组合框都填写在表格中的表格中。

这是我的代码。

Private Sub UserForm_Initialize()
    Dim ws As Worksheet, tbl As ListObject, rng As Range

    Set ws = Sheets("Summary of Accounts")
    Set tbl = ws.ListObjects("groupheads")
    Set rng = tbl.ListColumns(3).DataBodyRange

    Me.cmb1.Clear
    Me.cmb2.Clear

    With cmb1
        .AddItem "Debit"
        .AddItem "Credit"
    End With


    "If rng = vbNullString Then"
        MsgBox ("Please create the Group Head Account First")
    Exit Sub

    End If

End Sub

错误发生在引用行,因为未定义对象变量。我想要的是如果表格列中没有数据,那么应该出现我在上面的代码中显示的msg框。

1 个答案:

答案 0 :(得分:2)

如果ListObject表在.DataBodyRange property的第一行中没有数据,那么将范围类型变量设置为它将导致Nothing。

If rng Is Nothing Then
    MsgBox ("Please create the Group Head Account First")
    Exit Sub
End If

是的,看起来那里有一个空行,但.DataBodyRange实际上没有任何内容,直到它在其中一个单元格中获得至少一个值。