По некоторым причинам, решение этих двух вопросов ( Q1 , Q2 ) о том, как провести различие между «отменить» и «хорошо с пустой строкой» для поля ввода не всегда работает в пределах указанного c моего кода. До сих пор я не смог воспроизвести проблему, поэтому я искал другое решение.
В моем сценарии всплывающее окно со значением по умолчанию, полученным из другого источника. Пока мне нужно было только изменить это значение через поле ввода, чтобы простая проверка для if len(inputboxString) = 0 then
, чтобы определить, была ли нажата cancel
, работала хорошо. Теперь у меня есть случай, когда мне нужно «очистить» существующее значение по умолчанию. Я пытаюсь избежать использования StrPtr
по причине, описанной выше.
Вот код, который работал до сих пор (до тех пор, пока мне не нужно использовать поле ввода для удаления значения, поскольку 'strInputBox = ""' зарезервировано для события cancel, и я хочу избежать используя 'strPtr').
Dim strSomeStringFromSomewhere as String
strSomeStringFromSomewhere = someSubThatGetsTheStringValueFromSomeWhere
Dim strInputBox As String
strInputBox = InputBox(Prompt:="Edit/Delete Value", Title:="Title", Default:=strSomeStringFromSomewhere)
If strInputBox = "" then
'do nothing cause cancel was pressed
else
someSubThatWritesTheChangedStringBackToItsOrigin strInputBox
End If
Используемым значением обычно является некоторая строка alphanumeri c, например, d939d8ej3
.
Любые советы / идеи для другого дружественного подхода будут приветствоваться. , (пользователь означает человека, использующего поле ввода, а не человека, который реализует / поддерживает код).