Ziel in VBA suchen

Die Zielsuche in VBA ist der Prozess, mit dem wir das Ziel erreichen können, das wir erreichen möchten. Dies ist ein Prozess, der zeigt, wie viel wir tun müssen, um das gesetzte Ziel zu erreichen. Angenommen, ein Zug hat täglich eine Ankunftszeit von 10 Uhr. Der Zug verkehrt von Montag bis Freitag zwischen A und B. Unter Berücksichtigung der durchschnittlichen Ankunftszeit dieses Zuges von A nach B ist es ohne Verzögerung genau 10 Uhr. Wenn also die Ankunftszeit dieses Zuges 10:16, 10:01, 9:57 und 10:04 Uhr für 4 aufeinander folgende Tage von Montag bis Donnerstag ist. Und um die durchschnittliche Ankunftszeit von 10 Uhr, die das Ziel für diesen Zug ist, beizubehalten, muss er um 9.45 Uhr ankommen, nur um die durchschnittliche Ankunftszeit von 10 Uhr beizubehalten. Dies könnte sogar noch cooler sein, wenn wir etwas automatisieren müssen. Es kommt VBA Goal Seek .

Syntax für Zielsuche:

Nachfolgend finden Sie die Syntax von VBA Goal Seek.

Wo,

  • Bereich: Die Zielbereichszelle, die das aktuelle Limit enthält.
  • Ziel : Das Limit oder Ziel, das wir erreichen wollen.
  • Ändern der Zelle: Die Zelle, in der die erforderliche Grenze angezeigt wird.

Wie Verwenden von Zielsuche in Excel VBA?

Wir werden lernen, wie man Goal Seek in Excel unter Verwendung des VBA-Codes verwendet.

Sie können diese Excel-Vorlage für VBA-Zielsuche hier herunterladen - Excel-Vorlage für VBA-Zielsuche

VBA Goal Seek - Beispiel # 1

Die durchschnittliche Genauigkeit, mit der Mitarbeiter ihre wöchentlichen 95% einhalten sollten. Unten finden Sie die Genauigkeitsdaten des Mitarbeiters von Montag bis Donnerstag mit einer durchschnittlichen Genauigkeit von 92, 25%, die in Zelle C8 angegeben sind (siehe unten).

Nun haben wir gemäß der Syntax von Goal Seek die Zelle Range, die den aktuellen Wert für den Feed und den Zielwert für die durchschnittliche Genauigkeit von 90% aufweist, die von diesem Mitarbeiter erreicht werden soll.

In diesem Beispiel wird die Genauigkeit der Arbeit eines Mitarbeiters überwacht. Führen Sie dazu die folgenden Schritte aus:

Schritt 1 : Öffnen Sie das Modul über die Registerkarte Einfügen (siehe unten).

Schritt 2: Schreiben Sie nun die Subprozedur von VBA Goal Seek wie unten gezeigt. Wir können einen beliebigen Namen wählen, um dies zu definieren.

Code:

 Sub Goal_Seek () End Sub 

Schritt 3: Gemäß der Syntax wählen wir die Range-Zelle aus, die den aktuellen Mittelwert enthält, der zugeführt werden soll. Hier ist diese Zelle C8.

Code:

 Sub Goal_Seek () Range ("C8"). End Sub 

Schritt 4: Wählen Sie nun die Zielsuchfunktion und gemäß der Syntax den Zielwert, den wir erreichen müssen. Hier ist dieses Ziel zu 90% genau.

Code:

 Sub Goal_Seek () Range ("C8"). GoalSeek Goal: = 90 End Sub 

Schritt 5: Wählen Sie nun endlich den Bereich der Zelle aus, in dem die erforderliche Genauigkeit angezeigt werden soll. Hier ist diese Zelle C6 mit Bezug auf Freitag.

Code:

 Sub Goal_Seek () Range ("C8"). GoalSeek Goal: = 90, ChangingCell: = Range ("C6") End Sub 

Schritt 6: Jetzt kompilieren wir den Code und führen ihn aus. Wir werden sehen, dass die Zelle C6 den Wert "Ändernde Zelle" 81 hat. Das bedeutet, wenn dieser Mitarbeiter am Freitag sogar 81% der Genauigkeit erreicht hat, wird er leicht in der Lage sein, die Genauigkeit von 90% zu erreichen.

VBA Goal Seek - Beispiel # 2

In diesem Beispiel haben wir Daten zur Bearbeitungszeit (TAT oder Zeit, um die Aktivität abzuschließen) eines Mitarbeiters eines Teams, der jeden Tag die gleiche Aufgabe ausführt. 5 Mitarbeiter machen von Montag bis Freitag die gleiche Aktivität. Die Zielzeit für den Abschluss dieser Aktivität beträgt 50 Minuten. Und wir müssen herausfinden, wie viel Zeit jeder Mitarbeiter benötigt, um die durchschnittliche Fertigstellungszeit von 50 Minuten oder weniger aufrechtzuerhalten. Führen Sie dazu die folgenden Schritte aus:

Schritt 1: Schreiben Sie in das Modul die unten gezeigte Unterprozedur für die VBA-Zielsuche.

Code:

 Sub Goal_Seek2 () End Sub 

Schritt 2: Definieren Sie eine Variable, anhand derer wir zählen können, ab wann die Zielsuche so lange dauern soll.

Code:

 Sub Goal_Seek2 () Dimme ein As Long End Sub 

Schritt 3: Definieren Sie nun wieder 2 weitere Variablen mit DIM mit dem Datentyp Range . Der erste wird verwendet, um den aktuellen endgültigen Durchschnitt zu verfolgen, und der zweite wird verwendet, um die Referenzzelle zu verknüpfen, in der die Ausgabe erfolgen soll.

Code:

 Sub Goal_Seek2 () Dim A As Long Dim FinalAvg As Range Dim Referenz As Range End Sub 

Schritt 4: Definieren Sie eine andere Variable als Ganzzahl, um das zu erreichende Ziel festzulegen.

Code:

 Sub Goal_Seek2 () Dim A As Long Dim FinalAvg As Range Dim Referenz As Range Dim Ziel As Integer End Sub 

Schritt 5: Hier ist unser Ziel 50 Minuten, also setzen Sie die Zielvariable auf diesen Wert.

Code:

 Sub Goal_Seek2 () Dim A As Long Dim FinalAvg As Range Dim Referenz As Range Dim Ziel As Integer Ziel = 50 End Sub 

Schritt 6: Öffnen Sie eine For-Next- Schleife wie unten gezeigt.

Code:

 Sub Goal_Seek2 () Dim A As Long Dim FinalAvg As Range Dim Referenz As Range Dim Ziel As Integer Ziel = 50 For Next A End Sub 

Schritt 7: Wählen Sie nun den Bereich der Zellen mit den Werten aus. Hier sind diese Zeilen von 3 bis 7 Zahlen.

Code:

 Sub Goal_Seek2 () Dim A As Long Dim FinalAvg As Range Dim Referenz As Range Dim Ziel As Integer Ziel = 50 For A = 3 To 7 Next A End Sub 

Schritt 8: Legen Sie den endgültigen Durchschnitt fest, von dem aus wir ihn erhalten möchten. Hier ist diese Zelle in Zeile 9.

Code:

 Sub Goal_Seek2 () Dim A As Long Dim FinalAvg As Range Dim Referenz As Range Dim Ziel As Integer Ziel = 50 For A = 3 To 7 Set FinalAvg = Cells (9, A) Next A End Sub 

Schritt 9: Legen Sie auf ähnliche Weise den Referenzzellenbereich fest, in dem der Zielsuchwert zum Erreichen des Ziels angezeigt werden soll und die Zellenzeile 7 ist.

Code:

 Sub Goal_Seek2 () Dim A As Long Dim FinalAvg As Range Dim Referenz As Range Dim Ziel As Integer Ziel = 50 For A = 3 To 7 Set FinalAvg = Cells (9, A) Set Reference = Cells (7, A) Next A End Sub 

Schritt 10: Wenden Sie zuletzt die VBA-Zielsuche mit der unten angegebenen Syntax an.

Code:

 Sub Goal_Seek2 () Dim A As Long Dim FinalAvg As Range Dim Referenz As Range Dim Ziel As Integer Ziel = 50 For A = 3 To 7 Set FinalAvg = Cells (9, A) Set Reference = Cells (7, A) FinalAvg.GoalSeek Ziel, Referenz Weiter A End Sub 

Schritt 11: Kompilieren Sie nun den vollständigen Code mit der Funktionstaste F8 und führen Sie ihn anschließend aus, wenn kein Fehler gefunden wird.

Wir werden sehen, dass wir in Zeile 7 mit Hilfe von Goal Seek die Zeit in Minuten bekommen, die jeder Mitarbeiter am Freitag erreichen muss, um den Durchschnitt von 50 Minuten oder weniger aufrechtzuerhalten.

So funktioniert VBA Goal Seek.

Vorteile von Excel VBA Goal Seek

  • Die VBA-Zielsuche ist auf verschiedene Arten hilfreich, um die Leistung zu verfolgen.
  • Dies kann auch in vielen statistischen Arbeiten verwendet werden, bei denen wir das Datenlimit verfolgen und anvisieren müssen, das wir erreichen möchten.
  • Dies gibt den genauen Wert an, den die Person erreichen muss, um das Ziel zu erreichen.

Dinge, an die man sich erinnern sollte

  • Dies kann sowohl in Excel als auch in VBA verwendet werden.
  • Ergebniszelle mit Mittelwert oder anderer Funktion muss immer die Formel haben.
  • Wir können den Zielwert in Goal in der Goal-Seek-Syntax eingeben, oder wir können dies auch früher separat definieren.
  • Wir können den Zielwert gemäß unseren Bedürfnissen und Anforderungen ändern und aktualisieren.
  • Diese Aufgabe kann nicht durch Aufzeichnen der auf der Registerkarte "Entwickler" verfügbaren Makros ausgeführt werden.
  • Denken Sie danach daran, die Excel-Datei im Makroaktivierungsformat zu speichern, um den geschriebenen Code beizubehalten.

Empfohlener Artikel

Dies ist eine Anleitung zur VBA-Zielsuche. Hier wird die Verwendung von Goal Seek in Excel VBA zusammen mit praktischen Beispielen und einer herunterladbaren Excel-Vorlage erläutert. Sie können auch unsere anderen Artikelvorschläge durchgehen -

  1. VBA Collection (Beispiele)
  2. VBA-IF-Anweisungen | Excel-Vorlagen
  3. Wie verwende ich die Excel VBA-Sortierfunktion?
  4. VBA While-Schleife (Beispiele mit Excel-Vorlage)
  5. VBA-Umgebungsfunktion

Kategorie: