VBA - 检查空白单元格 - 输出错误

时间:2017-06-28 15:21:12

标签: excel vba excel-vba

我有一个代码可以检查某些单元格是否为空(无空或无空)。它给了我一个信息。但是,它看起来效果不好:输出消息总是说该范围内有一些空单元格(列A到H,直到最后一个填充的行),而它相反(总是数据)。 我确切地说,范围的布局是一张桌子! MsgBox(LastRow)每次都等于最后一行也.. 以下是代码的一部分:

Set sht = ThisWorkbook.Worksheets("SS upload")         
Set StartCell = Range("A14")            
LastRow = sht.Cells(sht.Rows.Count, StartCell.Column).End(xlUp).Row
MsgBox (LastRow)
Set Rrng = Range("A14 : H" & LastRow)
For Each cell In Rrng
If IsEmpty(cell) = True Then
bIsEmpty = True
Exit For
End If
Next cell
If bIsEmpty = True Then
MsgBox "There are empty cells in the file"
Else
MsgBox "All cells have values!"
End If
End Sub

这有什么不妥吗?

感谢您的宝贵帮助! :) 此致

2 个答案:

答案 0 :(得分:1)

可能你没有意识到,你正在寻找range(A14:H LAST Row)因此,如果你有5行,那么范围仍然是范围(A14:H5)。在那里,你有空值。

Public Sub TestME()

    Dim bIsEmpty As Boolean

    Set sht = ThisWorkbook.Worksheets(2)
    Set StartCell = Range("A14")

    LastRow = sht.Cells(sht.Rows.Count, StartCell.Column).End(xlUp).row

    MsgBox (LastRow)
    Set Rrng = Range("A1 : H" & LastRow)

    For Each cell In Rrng
        If IsEmpty(cell) = True Then
            bIsEmpty = True
            Exit For
        End If
    Next cell

    If bIsEmpty Then
        MsgBox "There are empty cells in the file"
    Else
        MsgBox "All cells have values!"
    End If

End Sub

答案 1 :(得分:0)

这确实很奇怪,因为它有时也会起作用。我的意思是输出消息“所有单元格都有价值”符合文件中的真实内容(根本没有空白),但有时不符合..

这是我的完整代码:

{{1}}

感谢您的支持:)