Wie berechne ich 30 min Mittelwerte in VBA?

4 Antworten

ActiveCell.FormulaR1C1 ="= AVERAGE(C" & z & ":C" & x & ")"

Vielleicht geht das so, hab es nicht getestet.

Wo kommt der Wert MW her?

Woher ich das weiß:Hobby

Da passt so Einiges nicht und das müsste dir der Interpreter eigentlich auch anzeigen. Du musst zwischen Textkonstanten und Variablen unterscheiden. Innerhalb von Textkonstanten musst du " entwerten.

Range("H"&z).Select
ActiveCell.FormulaR1C1 ="=AVERAGE(""C"&z&":C"&x&""")"
Range("H"&i).Value = MW

(ungetestet)

  • Alternativ könntest du versuchen, die entsprechende Worksheetfunction für den Mittelwert zu verwenden.
  • Desweiteren verzichte am besten weitesgehend auf .Select im VBA-Code.
  • MW wird kein Wert zugewiesen.
  • Die Variablenbezeichnungen solltest du für den Anfang sprechender wählen.
  • Wenn z = i, wozu benötigst du z?
geri3d  09.07.2020, 09:26

Stimmt absolut! Select raubt nur endlos Zeit und ist in VBA für die Fische.

1

Das würde ich per Formel machen, nicht mit VBA.

Aber ich verstehe nicht, was Du mit "3 Spalten weiter unter dem vorherigen Mittelwert meinst". 3 Zeilen? Was ist mit den beiden Zeilen dazwischen? Bleiben die leer?

Ein Beispiel der Tabelle wäre wirklich hilfreich.

Kannst du dazu mal ein Bild machen, wie die Tabelle aussieht und mit 1-2 händisch eingetragenen Ergebnissen, damit man versteht, was du haben willst?

Du willst Minuten in halbe Stunden umrechnen? also z.B. aus 90 Minuten sollen 3 halbe Stunden werden und aus 10 Minuten sollen 0,3333 halbe Stunden werden?

Und davon hast du dann jeweils 30 Werte, von denen du den Mittelwert bilden und in jede 30ste Zeile schreiben willst?