12

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

VBA或任何其他方式有可能吗?

例子:

4 2 3 2 1
2   3 1

总和为:4 + 3 + 2 = 9。

4

4 回答 4

14

试试这个简单的代码

If IsEmpty(ActiveCell.Offset(1, 0)) Then
'your code here
End If
于 2012-04-22T17:52:33.340 回答
3

我会为此推荐一个公式

公式

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

快照

在此处输入图像描述

如果您仍然想要 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
于 2012-04-21T22:45:38.920 回答
2

当从其他数据库导出数据时,我只使用“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
于 2014-01-14T02:19:47.970 回答
0

对于那些绝望的人:有时 Excel 单元格看起来是空的,但经过检查可能包含一些不可见的东西,例如空格字符。然后所有这些 IsEmpty 和 IsNull 函数都对您没有帮助。

于 2022-02-15T13:58:19.603 回答