Использование VBA для проверки, пуста ли ячейка ниже

Как использовать VBA в Excel, чтобы проверить, пуста ли ячейка ниже или нет? Я хочу, чтобы сумма всех значений в определенном диапазоне, но только, если ячейка не пустая.

это как-то возможно с VBA или любым другим способом?

пример:

4 2 3 2 1
2   3 1

сумма будет: 4 + 3 + 2 = 9.

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

попробуйте этот простой код

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

У меня были некоторые проблемы с использованием только "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