VBA Funktion trotz fehlender Variablen ausführen
13.04.2020 17:29:26
W
Hallo Daniel,
super. Das ist die Lösung, um eine Funktion nur dann aufzurufen, wenn sie auch verfügbar ist.
(Nochmals für alle: das ist ggf. so gewollt, dass die Funktion fehlt! Und der Aufruf ist entsprechend der nachfolgenden Lösung vorzunehmen.)
Hier mein Testcode:
Sub AppRunTest()
Dim FuncRC As Variant
Dim Zufall As Variant
Zufall = Int(1000000 * Rnd)
FuncRC = Zufall
On Error Resume Next
FuncRC = Application.Run("AppRun", False, "Test")
On Error GoTo 0
If FuncRC = Zufall Then
Debug.Print "Funktion nicht vorhanden"
Else
Debug.Print "Ergebnis: " & FuncRC
End If
End Sub
Function AppRun(p1 As Boolean, p2 As String) As String
Debug.Print p1 & " " & p2
AppRun = "Test bestanden"
End Function
Vor dem Aufruf setze ich das Ergebnisfeld mit einem Zufallswert. Die Ausführung von "Run" muss ich mit "on Error" absichern. Wenn nach dem Run-Befehl das Antwortfeld unverändert ist, ist die Funktion nicht vorhanden.
Das Problem mit der ggf. fehlenden Funktion ist damit erledigt. Immerhin: das größere Problem ist nun gelöst.
Ich habe mit "Run" und der Weitergabe einer Variablen getestet. Aber mit "Option Expilcit" und fehlender Variablen-Definition geht nichts.
Ich lasse das Problem weiterhin offen, ändere aber den Betreff. Möglicherweise hat noch jemand eine Idee. Natürlich kann die fehlende Variable nur zur Steuerung verwendet werden und nicht als Parameter beim Aufruf einer weiteren Funktion.
Gruß
W H21