2012-04-21 5 views
7

Wie verwende ich VBA in Excel, um zu überprüfen, ob eine untere Zelle leer ist oder nicht? Ich möchte alle Werte in einem bestimmten Bereich summieren, aber nur, wenn die untere Zelle nicht leer ist.Verwenden von VBA, um zu überprüfen, ob die Zelle leer ist

Ist das irgendwie mit VBA oder anders möglich?

Beispiel:

4 2 3 2 1 
2 3 1 

Summe wäre: 4 + 3 + 2 = 9.

Antwort

4

ich eine Formel für diese

FORMEL empfehlen würde

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

SNAPSHOT

enter image description here

Wenn Sie noch VBA wollen, dann

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 

In der Tat sind viele Varianten in VBA haben. Sie können die obige Formel auch auswerten. Zum Beispiel

Option Explicit 

Sub Sample() 
    Debug.Print Evaluate("=SUMPRODUCT((A1:E1)*(A2:E2<>""""))") 
End Sub 
+0

@ Siddarth Rout, sehr netter Ansatz. – Marc

+0

Schön! Würde es Ihnen etwas ausmachen, diesen Teil auszuarbeiten: "<>" "'? – cherrun

+1

@Cherrun: "<>" steht für "Ungleich". Also nehme ich einfach Zellen in Betracht, die im Bereich A2: E2 nicht leer sind. –

9

Versuchen Sie diese einfache Code

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

ich einige Probleme nur ‚IsEmpty‘ verwendet haben, hatten, wenn die Daten aus anderen Datenbanken exportiert wird. Dies ist die Funktion, die ich entwickelt habe:

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