VLOOKUP auslösen Ein Makro auslösen (Microsoft Excel)
Mike verwendet VLOOKUP regelmäßig in seinen Arbeitsblättern, fragt sich jedoch, ob es eine Möglichkeit gibt, die Funktion dazu zu bringen, ein Makro auszuführen, wenn sie keinen Wert zurückgibt.
Es gibt verschiedene Möglichkeiten, wie Sie dieses Problem angehen können. Zunächst können Sie mithilfe einer bedingten Formel bestimmen, ob VLOOKUP einen Wert oder einen Fehler zurückgibt. Wenn ein Fehler zurückgegeben wird, kann die Formel eine benutzerdefinierte Funktion (MyUDF) ausführen, wie hier gezeigt:
=IF(ISERROR(VLOOKUP(B2,CODES,1,FALSE)),MyUDF(), VLOOKUP(B2,CODES,1,FALSE))
Sie müssen lediglich sicherstellen, dass Sie Ihren tatsächlichen VLOOKUP-Code (zweimal) in die Formel einfügen und MyUDF durch den Namen der benutzerdefinierten Funktion ersetzen, die Sie auslösen möchten.
Ein anderer Ansatz besteht darin, einen Ereignishandler für das Ereignis „Berechnen“ einzurichten.
Dies kann wie im Folgenden recht einfach sein:
Private Sub Worksheet_Calculate() If IsError(Range("A1")) Then Call Macro1 End Sub
In diesem Beispiel wird davon ausgegangen, dass sich die VLOOKUP-Formel in Zelle A1 befindet und Sie ein Makro mit dem Namen Macro1 ausführen möchten, wenn VLOOKUP einen Fehler zurückgibt. Ihr Makro kann dann alles tun, was Sie brauchen. Denken Sie auch daran, dass der Ereignishandler „Berechnen“ im ThisWorksheet-Objekt platziert werden sollte.
Sie können den Calculate-Ereignishandler auch etwas robuster gestalten, wie hier gezeigt:
Private Sub Worksheet_Calculate() On Error GoTo myMac Worksheets(1).Select If Range("A1").Value Then Exit Sub End If myMac: Macro1 'macro to run if VLOOKUP fails End Sub
_Hinweis: _
Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.
ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.
Dieser Tipp (3891) gilt für Microsoft Excel 97, 2000, 2002 und 2003. Eine Version dieses Tipps für die Multifunktionsleistenschnittstelle von Excel (Excel 2007 und höher) finden Sie hier: