2012-04-21 17 views
7

Come utilizzare VBA in Excel per verificare se una cella sottostante è vuota o no? Voglio sommare tutti i valori in un intervallo specifico, ma solo, se la cella sottostante non è vuota.Utilizzo di VBA per verificare se la cella sottostante è vuota

È in qualche modo possibile con VBA o in qualsiasi altro modo?

Esempio:

4 2 3 2 1 
2 3 1 

Sum sarebbe: 4 + 3 + 2 = 9.

risposta

4

consiglierei una formula per questo

FORMULA

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

SNAPSHOT

enter image description here

Se si vuole ancora VBA poi

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 realtà si può avere molte versioni in VBA. Puoi valutare anche la formula sopra. Per esempio

Option Explicit 

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

@Siddarth Rout, approccio molto bello. – Marc

+0

Bello! Ti dispiacerebbe elaborare su questa parte: '<> ""'? – cherrun

+1

@Cherrun: "<>" sta per "Non uguale a". Quindi sto semplicemente prendendo in considerazione le celle che non sono vuote nell'intervallo A2: E2. –

9

Prova questo semplice codice

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

Ho avuto alcuni problemi utilizzando solo 'IsEmpty' quando i dati vengono esportati da altri database. Questa è la funzione che ho sviluppato:

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 
Problemi correlati