Wussten Sie, dass es möglich ist, zu unterscheiden, ob ein Benutzer in einer InputBox auf "OK" klickt oder auf "Abbrechen", selbst wenn er keinen Text eingegeben hat?
Betrachten Sie den folgenden Beispielcode:
Sub InputBoxTest()
Dim Result As String
Result = InputBox("Leave this box blank")
If StrPtr(Result) = 0 Then
Debug.Print "User clicked [Cancel]"
ElseIf Len(Result) = 0 Then
Debug.Print "User clicked [OK]"
Else
Debug.Print "User can't follow instructions"
End If
End Sub
Hier ist der Testcode in Aktion:
Wenn Sie daran interessiert sind, warum das funktioniert, empfehle ich die folgende Frage zu Stackoverflow:Was sind die Vorteile und Risiken der Verwendung von StrPtr in VBA? Die beiden am besten bewerteten Antworten (von den Benutzern Comintern und GSerg) sind für Hintergrundwissen lesenswert.
Externe Referenzen
InputBox-Funktion (Visual Basic for Applications)Microsoft Docso365devxWas sind die Vorteile und Risiken der Verwendung der StrPtr-Funktion in VBA?Auf der Suche nach einer Möglichkeit, zu testen, wann ein Benutzer eine InputBox abbricht, bin ich auf die StrPtr-Funktion gestoßen. Ich glaube, es prüft, ob einer Variablen jemals ein Wert zugewiesen wurde, und gibt Null zurück, wenn dies nie der Fall war StapelüberlaufChrisB