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

che*_*run 9 excel vba excel-vba

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

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

例:

4 2 3 2 1
2   3 1
Run Code Online (Sandbox Code Playgroud)

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

小智 12

试试这个简单的代码

If IsEmpty(ActiveCell.Offset(1, 0)) Then
'your code here
End If
Run Code Online (Sandbox Code Playgroud)


Sid*_*out 3

我会推荐一个公式

公式

=SUMPRODUCT((A1:E1)*(A2:E2<>""))
Run Code Online (Sandbox Code Playgroud)

快照

在此输入图像描述

如果你还想要 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
Run Code Online (Sandbox Code Playgroud)

事实上,VBA 中可以有许多版本。您也可以评估上面的公式。例如

Option Explicit

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