Wie mittele ich werte in excel über vba?

In Excel können Sie mit VBA Durchschnittswerte aus einem Zellbereich oder mehreren Bereichen berechnen. Und in diesem Tutorial lernen wir die verschiedenen Verwendungsmöglichkeiten kennen.

Durchschnitt in VBA mit WorksheetFunction

In VBA gibt es mehrere Funktionen , die Sie verwenden können, es gibt jedoch keine spezielle Funktion für diesen Zweck. Das bedeutet nicht, dass wir keinen Durchschnitt nehmen können. In VBA gibt es eine Eigenschaft namens WorksheetFunction , die Ihnen beim Aufrufen von Funktionen im VBA-Code helfen kann.

Durchschnitt in VBA mithilfe der Tabellenkalkulationsfunktion

Lassen Sie uns die Werte im Bereich A1:A10 mitteln.

  1. Geben Sie zunächst die Eigenschaft der Arbeitsblattfunktion ein und wählen Sie dann die Funktion AVERAGE aus der Liste aus.
    worksheet-function-average
  2. Als nächstes müssen Sie eine Anfangsklammer eingeben, wie Sie es auch tun, wenn Sie eine Funktion in die Tabellenkalkulation eingeben.
    enter-starting-paranthesis
  3. Danach müssen wir das Bereichsobjekt verwenden, um auf den Bereich zu verweisen, für den wir den Durchschnitt berechnen möchten.
    use-the-range-object
  4. Geben Sie am Ende eine schließende Klammer ein und weisen Sie Zelle B1 den Rückgabewert der Funktion zu.
    type-close-pranthesis
 Application.WorksheetFunction.Average( Range ("A1:A10"))

Wenn Sie nun diesen Code ausführen, berechnet er den Durchschnitt der Werte, die Sie im Bereich A1:A10 haben, und gibt den Wert in Zelle B1 ein.

run-code-calculate-average

Durchschnittswerte einer gesamten Spalte oder Zeile

In diesem Fall müssen Sie lediglich eine Zeile oder Spalte anstelle des Bereichs angeben, den wir im vorherigen Beispiel verwendet haben.

 'for the entire column A Range ("B1") = Application.WorksheetFunction.Average( Range ("A:A")) 'for entire row 1 Range ("B1") = Application.WorksheetFunction.Average( Range ("1:1"))

Verwenden Sie VBA, um Auswahlwerte zu mitteln

Angenommen, Sie möchten nur den Durchschnittswert ausgewählter Zellen berechnen, da Sie Code wie diesen verwenden können.

 Sub vba_average_selection() Dim sRange As Range Dim iAverage As Long On Error GoTo errorHandler Set sRange = Selection iAverage = WorksheetFunction.Average(Range(sRange.Address)) MsgBox iAverage Exit Sub errorHandler: MsgBox "make sure to select a valid range of cells" End Sub

Im obigen Code haben wir die Auswahl verwendet, sie dann in der Variablen „sRange“ angegeben und dann die Adresse dieser Bereichsvariablen verwendet, um den Durchschnitt zu ermitteln.

VBA mittelt alle oben genannten Zellen

Der folgende Code nimmt alle oben genannten Zellen und ihre Durchschnittswerte und trägt das Ergebnis in die ausgewählte Zelle ein .

 Sub vba_auto_Average() Dim iFirst As String Dim iLast As String Dim iRange As Range On Error GoTo errorHandler iFirst = Selection. End (xlUp). End (xlUp).Address iLast = Selection. End (xlUp).Address Set iRange = Range(iFirst & ":" & iLast) ActiveCell = WorksheetFunction.Average(iRange) Exit Sub errorHandler: MsgBox "make sure to select a valid range of cells" End Sub

Mittelung eines Dynamikbereichs mit VBA

Und in ähnlicher Weise können Sie den dynamischen Bereich verwenden, während Sie VBA verwenden, um die Werte zu mitteln.

 Sub vba_dynamic_range_average() Dim iFirst As String Dim iLast As String Dim iRange As Range On Error GoTo errorHandler iFirst = Selection.Offset(1, 1).Address iLast = Selection.Offset(5, 5).Address Set iRange = Range(iFirst & ":" & iLast) ActiveCell = WorksheetFunction.Average(iRange) Exit Sub errorHandler: MsgBox "make sure to select a valid range of cells" End Sub

Durchschnitt einer dynamischen Spalte oder Zeile

Wenn Sie eine dynamische Spalte verwenden möchten, können Sie auf ähnliche Weise den folgenden Code verwenden, der die Spalte der aktiven Zelle und den Durchschnitt aller dort vorhandenen Werte verwendet.

 Sub vba_dynamic_column() Dim iCol As Long On Error GoTo errorHandler iCol = ActiveCell.Column MsgBox WorksheetFunction.Average(Columns(iCol)) Exit Sub errorHandler: MsgBox "make sure to select a valid range of cells" End Sub

Und zwar für eine Reihe.

 Sub vba_dynamic_row() Dim iRow As Long On Error GoTo errorHandler iRow = ActiveCell.Row MsgBox WorksheetFunction.Average(Rows(iCol)) Exit Sub errorHandler: MsgBox "make sure to select a valid range of cells" End Sub

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert