Wie verwende ich sum in excel über vba?

In Excel können Sie mit VBA die Summe der Werte aus einem Zellbereich oder mehreren Bereichen berechnen. Und in diesem Tutorial lernen wir die verschiedenen Möglichkeiten kennen, wie wir es verwenden können.

Summieren Sie 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 keine Summe bilden können. In VBA gibt es eine Eigenschaft namens WorksheetFunction , die Ihnen beim Aufrufen von Funktionen im VBA-Code helfen kann.

Summe-in-VBA-mit-Tabelle

Betrachten Sie die Summe der Werte im Bereich A1:A10.

  1. Geben Sie zunächst die Arbeitsblattfunktionseigenschaft ein und wählen Sie dann die SUMME-Funktion aus der Liste aus.
    enter-worksheet-function
  2. Als nächstes müssen Sie eine Anfangsklammer eingeben, wie Sie es auch tun, wenn Sie eine Funktion in die Tabellenkalkulation eingeben.
    starting-parenthesis
  3. Danach müssen wir das Bereichsobjekt verwenden, um auf den Bereich zu verweisen, für den wir die Summe 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.
    closing-parenthesis
 Range ("B1") = Application.WorksheetFunction.Sum(Range("A1:A10"))

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

Führen Sie den Code aus, um ihn zu berechnen

Summe der Werte einer gesamten Spalte oder Zeile

Geben Sie in diesem Fall einfach eine Zeile oder Spalte anstelle des Bereichs an, den wir im vorherigen Beispiel verwendet haben.

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

Verwenden Sie VBA, um Auswahlwerte hinzuzufügen

Angenommen, Sie möchten nur den Wert der ausgewählten Zellen summieren, da Sie Code wie diesen verwenden können.

 Sub vba_sum_selection() Dim sRange As Range Dim iSum As Long On Error GoTo errorHandler Set sRange = Selection iSum = WorksheetFunction.Sum(Range(sRange.Address)) MsgBox iSum 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 die Summe zu erhalten.

VBA-Summe aller Zellen oben

Der folgende Code extrahiert alle Zellen und Summenwerte und trägt das Ergebnis in die ausgewählte Zelle ein.

 Sub vba_auto_sum() 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.Sum(iRange) Exit Sub errorHandler: MsgBox "make sure to select a valid range of cells" End Sub

Fügen Sie mit VBA einen dynamischen Bereich hinzu

Und ähnlich können Sie den Dynamikbereich nutzen, während Sie VBA zum Hinzufügen von Werten verwenden.

 Sub vba_dynamic_range_sum() 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.Sum(iRange) Exit Sub errorHandler: MsgBox "make sure to select a valid range of cells" End Sub

Fügen Sie eine dynamische Spalte oder Zeile hinzu

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

 Sub vba_dynamic_column() Dim iCol As Long On Error GoTo errorHandler iCol = ActiveCell.Column MsgBox WorksheetFunction.Sum(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.Sum(Rows(iCol)) Exit Sub errorHandler: MsgBox "make sure to select a valid range of cells" End Sub

Verwenden Sie SUMIF mit VBA

Genau wie sum können Sie die SUMIF-Funktion verwenden, um Werte mit Kriterien wie im folgenden Beispiel hinzuzufügen.

sumif-mit-vba
 Sub vba_sumif() Dim cRange As Range Dim sRange As Range Set cRange = Range ("A2:A13") Set sRange = Range ("B2:B13") Range ("C2") = _ WorksheetFunction.SumIf(cRange, "Product B", sRange) End Sub

Einen Kommentar hinzufügen

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