使用VBA检查下面的单元格是否为空

时间:2012-04-21 22:38:34

标签: excel excel-vba vba

如何在Excel中使用VBA来检查下面的单元格是否为空? 我想对特定范围内的所有值求和,但仅限于下面的单元格不为空。

VBA或其他任何方式都可能以某种方式实现吗?

示例:

4 2 3 2 1
2   3 1

总和将是:4 + 3 + 2 = 9。

3 个答案:

答案 0 :(得分:12)

试试这个简单的代码

If IsEmpty(ActiveCell.Offset(1, 0)) Then
'your code here
End If

答案 1 :(得分:3)

我会为此推荐一个公式

<强>公式

=SUMPRODUCT((A1:E1)*(A2:E2<>""))

快照

enter image description here

如果你还想要VBA那么

<强> VBA

Option Explicit

Sub Sample()
    Dim rng As Range
    Dim Cl As Range
    Dim tot As Long

    Set rng = Range("A1:F1")

    For Each Cl In rng
        If Len(Trim(Cl.Offset(1))) <> 0 Then tot = tot + Cl.Value
    Next

    Debug.Print tot
End Sub

实际上,您可以在VBA中拥有多个版本。您也可以评估上述公式。例如

Option Explicit

Sub Sample()
    Debug.Print Evaluate("=SUMPRODUCT((A1:E1)*(A2:E2<>""""))")
End Sub

答案 2 :(得分:1)

当从其他数据库导出数据时,我只使用'IsEmpty'时遇到了一些问题。这是我开发的功能:

Function IsVacant(TheVar As Variant) As Boolean
  'LeandraG 2010

  IsVacant = False

  If IsEmpty(TheVar) Then IsVacant = True
  If Trim(TheVar) = "" Then IsVacant = True
  If Trim(TheVar) = "'" Then IsVacant = True


End Function