27.07.2022, 14:52
Hallo,
ich ermittle via VBA abhängig von zwei Bedingungen in einer Spalte den Mittelwert mit der averageifs-Methode. Das Ganze läuft in einer For-Next-Schleife und befüllt mir eine variabel anpassbare Tabelle.
Der betreffende Code-Schnipsel, sieht dazu folgendermaßen aus:
Sheets("Tabelle1").Cells(70, 17 + i) = WorksheetFunction.IfError(WorksheetFunction.AverageIfs(Sheets("Tabelle2").Range("DD:DD"), Sheets("Tabelle2").Range("C:C"), Sheets("Tabelle1").Cells(64, 17 + i), Sheets("Tabelle2").Range("D:D"), Sheets("Tabelle1").Cells(63, 17 + i)), 0)
Das funktioniert auch wunderbar, so lange die Zellen in der Spalte >>Sheets("Tabelle2").Range("DD:DD")<< unter den beiden Bedingungen auch befüllt sind. Es kommt jedoch vor, dass in der Spalte DD die betreffenden Zellen leer sind. Ist das der Fall, dann kommt der Debugger. Das kann ich soweit glaube ich auch nachvollziehen, mein Problem liegt darin, den Fehler in diesen Fällen abzufangen.
Wie man im Code-Schnipsel sehen kann, habe ich es mit der ifError-Methode versucht, was allerdings genauso erfolglos ist wie der Versuch über "On Error resume next" zu gehen.
Letztendlich will ich nur erreichen, dass er die Werte dann ermittelt wenn sie ermittelt werden können, wenn nicht dann entweder einfach nichts machen, oder von mir aus eine Null ausgeben.
ich check nicht was ich falsch mache.
Hat jemand eine Idee?
Viele Grüße und Danke im Voraus
ich ermittle via VBA abhängig von zwei Bedingungen in einer Spalte den Mittelwert mit der averageifs-Methode. Das Ganze läuft in einer For-Next-Schleife und befüllt mir eine variabel anpassbare Tabelle.
Der betreffende Code-Schnipsel, sieht dazu folgendermaßen aus:
Sheets("Tabelle1").Cells(70, 17 + i) = WorksheetFunction.IfError(WorksheetFunction.AverageIfs(Sheets("Tabelle2").Range("DD:DD"), Sheets("Tabelle2").Range("C:C"), Sheets("Tabelle1").Cells(64, 17 + i), Sheets("Tabelle2").Range("D:D"), Sheets("Tabelle1").Cells(63, 17 + i)), 0)
Das funktioniert auch wunderbar, so lange die Zellen in der Spalte >>Sheets("Tabelle2").Range("DD:DD")<< unter den beiden Bedingungen auch befüllt sind. Es kommt jedoch vor, dass in der Spalte DD die betreffenden Zellen leer sind. Ist das der Fall, dann kommt der Debugger. Das kann ich soweit glaube ich auch nachvollziehen, mein Problem liegt darin, den Fehler in diesen Fällen abzufangen.
Wie man im Code-Schnipsel sehen kann, habe ich es mit der ifError-Methode versucht, was allerdings genauso erfolglos ist wie der Versuch über "On Error resume next" zu gehen.
Letztendlich will ich nur erreichen, dass er die Werte dann ermittelt wenn sie ermittelt werden können, wenn nicht dann entweder einfach nichts machen, oder von mir aus eine Null ausgeben.
ich check nicht was ich falsch mache.
Hat jemand eine Idee?
Viele Grüße und Danke im Voraus