Знаете ли, че е възможно да се направи разлика между потребител, който щракне върху „OK“ на InputBox от „Отказ“, дори ако не е въвел никакъв текст?
Помислете за следния примерен код:
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
Ето тестовия код в действие:
Ако се интересувате защо това работи, препоръчвам следния въпрос относно stackoverflow:Какви са ползите и рисковете от използването на StrPtr във VBA? И двата отговора с най-високо гласуване (от потребителите Comintern и GSerg) си струва да прочетете за основни познания.
Външни препратки
Функция InputBox (Visual Basic за приложения)Microsoft Docso365devxКакви са ползите и рисковете от използването на функцията StrPtr във VBA? Докато търсех начин да тествам кога потребител отменя InputBox, попаднах на функцията StrPtr. Вярвам, че проверява дали на дадена променлива някога е била присвоена стойност и връща нула, ако никога не е била Stack OverflowChrisB