Arbeitsblattfunktionen in VBA-Makros mit VBA in Microsoft Excel

Anonim

Wenn Sie im VBA-Code auf bestimmte Arbeitsblattfunktionen wie Sum, Vlookup usw. verweisen müssen, können Sie diese direkt mithilfe des Application-Objekts verwenden. Also verwenden wir die Funktionen als -

Application.WorksheetFunction.Sum oder Application.WorksheetFunction.Vlookup wo WorksheetFunction ist die Methode des Application-Objekts.

Wenn man bedenkt, dass wir dieses Testmakro haben, wenn wir eingeben

Anwendung.ArbeitsblattFunktion.

Wir erhalten ein Popup, das die Formeln zeigt, siehe unten Bild

Wenn Sie beispielsweise die Werte dieses Bereichs in Spalte A mit vba summieren möchten -

Lassen Sie uns eine Variable namens SalesTotal haben, die die Summe darin speichert. Um die Summe in SalesTotal zu erhalten, verwenden wir den folgenden VBA-Code im Standardmodul:

Untermakro4()
Dim SalesTotal As Long
SalesTotal = Application.WorksheetFunction.Sum(Range("A2:A6"))
MsgBox SalesTotal
End Sub

Um den obigen Code in Ihre Datei zu kopieren,

  • Drücken Sie Alt + F11 auf der Tastatur.
  • Auf der linken Seite sehen Sie Microsoft Excel-Objekte.
  • Klicken Sie mit der rechten Maustaste und wählen Sie Einfügen.
  • Klicken Sie dann auf Modul.
  • Kopieren Sie den Code in das Codefenster rechts.

Wenn wir dieses Beispielmakro verwenden, erhalten wir eine Meldung mit dem Wert, der in Sales Total gespeichert ist und in weiteren Codezeilen des Makros verwendet werden kann.

Die Ausgabe, die wir erhalten, ist -

Wenn Sie möchten, dass SalesTotal in Zelle A7 angezeigt wird, können Sie die Codezeile ändern von

Msgbox SalesTotalzu Worksheets("Sheet1").Range("A7").Value = SalesTotal

In Anbetracht dessen benötigen wir auch den durchschnittlichen Umsatz für diese Zahlen in Zelle A9. Wir können den folgenden Code verwenden

Untermakro5()
Dim SalesTotal As Long
Mit Arbeitsblättern("Blatt1")
SalesTotal = Application.WorksheetFunction.Sum(.Range("A2:A6"))
.Range("A7").Value = SalesTotal
.Range("A9").Value = Application.WorksheetFunction.Average(.Range("A2:A6"))
Ende mit
End Sub

Es gibt geringfügige Änderungen an diesem Code im Vergleich zum vorherigen.

  • Anstatt eine Variable für den Durchschnitt zu verwenden, habe ich diesen Wert nach der Berechnung direkt in Zelle A9 eingegeben. Daher sehen Sie die Zeile .Range("A9").Value = Application.WorksheetFunction.Average(.Range("A2:A6"))
  • Die Zeile msgbox wurde entfernt.
  • Der Wert in der Variablen SalesTotal geht in Zelle A7.
  • Idealerweise können Sie dieselbe Codezeile, die für den Durchschnitt verwendet wurde, für die Summencodezeile wiederholen, indem Sie

SalesTotal = Application.WorksheetFunction.Sum(.Range("A2:A6"))

.Range(“A7”).Wert = SalesTotal

Mit

.Range("A7").Value = Application.WorksheetFunction.Sum(.Range("A2:A6"))

Es wurde jedoch beibehalten, damit Sie die verschiedenen Arten der Codierung derselben Aufgabe verstehen können. Ebenso können wir andere Funktionen verwenden, während wir Application.WorksheetFunction verwenden. Alle Funktionen, die wir direkt im Arbeitsblatt verwenden können, können wir hier verwenden.

Dies erleichtert die Verwendung der Funktionen im Code, sodass wir die erforderlichen Formeln berechnen können, ohne einen Code für die Formel erstellen zu müssen.

Wenn Ihnen unsere Blogs gefallen haben, teilen Sie sie mit Ihren Freunden auf Facebook. Und Sie können uns auch auf Twitter und Facebook folgen.
Wir würden uns freuen, von Ihnen zu hören, lassen Sie uns wissen, wie wir unsere Arbeit verbessern, ergänzen oder erneuern und für Sie verbessern können. Schreiben Sie uns an E-Mail-Site