如何在Excel中使用VBA来检查下面的单元格是否为空? 我想对特定范围内的所有值求和,但仅限于下面的单元格不为空。
VBA或其他任何方式都可能以某种方式实现吗?
示例:
4 2 3 2 1
2 3 1
总和将是:4 + 3 + 2 = 9。
答案 0 :(得分:12)
试试这个简单的代码
If IsEmpty(ActiveCell.Offset(1, 0)) Then
'your code here
End If
答案 1 :(得分: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
答案 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