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

如何在Excel中使用VBA来检查下面的单元格是否为空? 我想总结一个特定的范围内的所有值,但只有,如果下面的单元格不是空的。

用VBA或其他方式可以做到这一点吗?

例:

4 2 3 2 1 2 3 1 

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

我会为此推荐一个公式

 =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 

试试这个简单的代码

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

从其他数据库导出数据时,使用“IsEmpty”时遇到了一些问题。 这是我开发的function:

 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