检查excel单元格是否为空

时间:2013-10-11 18:56:22

标签: excel vba

我需要excel的vba代码。我正在检查A1,B7,C9是否为空。

如果它们是空的(任何或所有变量都是空的),我需要返回:
“是如此,所以细胞是空的,点击确定填充它”

如果没有单元格为空,或者所有单元格都不为空,或者它们包含任何值,我需要返回:
“做我的东西”

指向特定工作簿的链接,但我也想在这里查看。

4 个答案:

答案 0 :(得分:1)

Sub tgr()

    Dim CheckCell As Range

    For Each CheckCell In Sheets("Sheet1").Range("A1,B7,C9").Cells
        If Len(Trim(CheckCell.Value)) = 0 Then
            CheckCell.Select
            MsgBox "Cell " & CheckCell.Address(0, 0) & " is empty. Click OK and populate it.", , "Missing Information"
            Exit Sub
        End If
    Next CheckCell

    'All cells filled, code to Do My Stuff goes here
    MsgBox "Do my stuff", , "Continue macro"

End Sub

答案 1 :(得分:1)

如果您关心单元格是否为空,则需要在Value属性上使用IsEmpty函数。对于具有单撇号的单元格或返回空字符串的函数,这将返回false。

Public Function CellsAreEmpty(ParamArray aCells() As Variant) As Boolean

    Dim vItm As Variant
    Dim bReturn As Boolean

    bReturn = True

    For Each vItm In aCells
        bReturn = bReturn And IsEmpty(vItm.Value)
    Next vItm

    CellsAreEmpty = bReturn

End Function


Sub TestCells()

    If CellsAreEmpty(Range("A1"), Range("B7"), Range("C9")) Then
        Debug.Print "Do stuff"
    Else
        Debug.Print " is so so so cell is empty click ok to fill it"
    End If

End Sub

答案 2 :(得分:0)

这是你在找什么?

下面的代码将检查sheet1-范围A1,B7,c9。

Sub checkEmptyCells()

    With ThisWorkbook.Sheets("sheet1")
        If (Len(.Range("A1")) = 0) Then
            MsgBox "Cell A1 is empty. Click ok to fill"
            Exit Sub
        ElseIf (Len(.Range("B7")) = 0) Then
            MsgBox "Cell B7 is empty. Click ok to fill"
            Exit Sub
        ElseIf (Len(.Range("C9")) = 0) Then
            MsgBox "Cell C9 is empty. Click ok to fill"
            Exit Sub
        Else
            MsgBox "Do my stuff"
            Exit Sub
        End If

    End With

End Sub

答案 3 :(得分:0)

如果您更喜欢使用非vba解决方案,那么您可以使用条件格式。 它不会给出消息框,但会在空白时突出显示单元格。

要使用条件格式,请按照以下步骤进行操作

  • 选择单元格
  • 在主页标签下> Sytles>条件格式
  • 将出现条件格式设置对话框。单击“新建规则”按钮。
  • 选择使用公式确定要格式化的单元格。
  • 输入公式(如果选择了单元格A1,则A1 =“”)
  • 点击格式>转到填充并选择所需的颜色。

enter image description here