Summewenn VBA zu langsam
20.09.2015 20:24:39
Bonduca
ich habe einen Code der leider für ca 20000 Zeilen und 500 Spalten viel zu lange dauert.
Ich möchte eine Summewenn Funktion in Excel VBA einbauen.
In Tabelle 1 stehen meine Ausgangsdaten.
Wenn in Spalte C der Tabelle 2 die gleichen Werte stehen wie in Spalte C der Tabelle 1, dann sollen die einzelnen Spalten der Tabelle 1 zusammengezählt werden.
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim varResult As Variant
Dim arrResult(20000) As Variant
Set ws1 = Worksheets("Tabelle1")
Set ws2 = Worksheets("Tabelle2")
ws2.Activate
'SummeWenn wird durchgeführt
For i = 17 To 20000
For j = 4 to 500
varResult = Application.WorksheetFunction.SumIfs( _
Arg1:=ws1.Range(ws1.Cells(17, 3), ws1.Cells(20000, 3)), _
Arg2:=ws2.Cells(i, 3), _
Arg4:=ws1.Range(ws1.Cells(17, j), ws1.Cells(20000, j)), _
'Ergebnis wird in einen Speicher geschrieben
Ergebnis (i,j) = varResult
Next j
Next i
'Das Ergebnis wird in die einzelnen Zeilen geschrieben
For a = 17 To 20000
For b = 4 to 500
Cells(a, b) = Ergebnis (i,j)
Next b
Next a
End Sub
Der Code funktioniert, nur werde ich alt und grau bis er fertig berechnet hat.
Das muss doch irgendwie schneller gehen, oder?