2013-07-24 29 views
5

Desidero essere in grado di filtrare e visualizzare il conteggio & sumif dell'intervallo globale e dell'intervallo visibile (filtrato). Con questo codice sono in grado di visualizzare il conteggio & SUMIF della gamma globale:Ottieni la somma delle righe visibili in VBA

AtmCount = Application.WorksheetFunction.CountIf(Range("X3:X4533"), ">0") 
AtmSum = Application.WorksheetFunction.Sum(Range("X3:X4533")) 

Con questa parte sono in grado di visualizzare il conteggio di un intervallo filtrato:

AtmCurrentCount = Range("X3:X4533").SpecialCells(xlCellTypeVisible).Count 
AtmCurrentSum = ??? 
Potrebbe

chiunque aiutare per ottenere la somma delle sole righe visibili?

+0

Questa potrebbe non essere la soluzione ideale ma se copi l'intervallo usato su un nuovo foglio copierà solo i dati filtrati permettendoti di fare qualsiasi calcolo tu abbia più bisogno – Ripster

+0

Non un'opzione Randy anche se i dati cambiano frequentemente. – CustomX

risposta

6

Questo farà quello che vuoi. Impostare visibleTotal sul tipo di dati appropriato per il totale e modificare gli oggetti ws e rng in modo che corrispondano a quelli presenti nella cartella di lavoro.

Sub SumVisible() 
    Dim ws As Worksheet 
    Dim rng As Range 
    Dim visibleTotal As Long 

    Set ws = ThisWorkbook.Sheets("Sheet1") 
    Set rng = ws.Range("B1:B7") 

    ws.AutoFilterMode = False 
    rng.AutoFilter field:=1, Criteria1:=5 

    visibleTotal = Application.WorksheetFunction.Sum(rng.SpecialCells(xlCellTypeVisible)) 
    ' print to the immediate window 
    Debug.Print visibleTotal 
End Sub 

In caso si desidera solo per riassumere una parte della gamma filtrato (ad esempio, di filtrare sulla colonna A, ma vogliono la somma della colonna B), vedere questa domanda e risposta: Copy/Paste/Calculate Visible Cells from One Column of a Filtered Table.

+0

Funziona come un fascino :) – CustomX

2

se desideri solo sommare piuttosto che SUMIF

AtmCurrentSum = application.worksheetfunction.subtotal(9, Range("X3:X4533")) 
+0

Penso che il tuo codice di esempio manchi di informazioni? – CustomX

+0

Ho aggiunto la variabile-pensato che fosse auto-esplicativo ;-) – JosieP

+0

Non la variabile;) Quando ho aggiunto la funzione 'WorksheetFunction ... dà un errore sul codice – CustomX

Problemi correlati