Ошибка входного окна VBA

У меня есть поле ввода в моем макросе, которое находится в цикле. Номера 1-4 соответствуют конкретной задаче, которую программа выполнит, а 5 сохранят и выйдут из программы.

Прямо сейчас окно ввода находится в непрерывном цикле, если пользователь не вводит его в 5 . Тем не менее, мне также хотелось бы, чтобы цикл и юг заканчивались, если пользователь нажимает кнопку « Cancel или кнопку « X в верхнем правом углу окна ввода. Когда я нажимаю Cancel или X , это дает мне ошибку.

Таким образом, можно ли закодировать клавиши « Cancel и « X в поле ввода, чтобы закончить цикл и выйти из подпрограммы без сообщения об ошибке? Например, это то, что у меня есть, если пользователь набирает 6 :

 If ipAnswer = 6 then ActiveWorkbook.Save Exit Sub End If 

Есть ли что-то, что позволило бы мне сделать:

 If 'cancel' or 'x' then ....... End If 

Вы можете обнаружить все три возможных результата при использовании InputBox() для возврата строки. Эти три результата:

  1. Пользователь ввел значение
  2. Пользователь нажал [OK] без ввода значения
  3. Пользователь нажал [Cancel] или [X]

Функция StrPtr() является ключом к различию между пустой строкой и несуществующей. Следующий код демонстрирует, как определить каждый сценарий:

 Dim s As String s = InputBox("Enter something:") If StrPtr(s) = 0 Then Debug.Print "[Cancel] or [X] clicked" ElseIf Len(s) = 0 Then Debug.Print "[OK] clicked but nothing entered" Else Debug.Print "Something entered: " & s End If 
Interesting Posts

Вычисление процента от общей величины в силовой модели

VBA – открыть файл из определенной папки и выполнить действие

Объединение заголовков нескольких файлов Excel в тело одного файла Excel

Моя пользовательская форма по-прежнему показывает мою книгу на компьютере с отключенным макросом

Условное выделение итогов, которые не соответствуют динамически суммированному диапазону

Попытка конвертировать определенные форматы в формат даты

Макрос Excel 2007 получает выбранные строки

Выбор целого столбца как диапазона, а не именованного диапазона

Как восстановить (предсказать) данные на основе корреляции / регрессии в Excel?

Python Regex Удалить \ n

Web API 2 и защита OData

Могу ли я читать файлы Excel с помощью драйвера ACE OleDbConnection Excel из файла System.IO.Stream, который нельзя найти, а не файла?

Excel в XML-код в java?

python – создание словаря из excel с использованием определенных столбцов

Excel как источник данных реального времени в C #

Давайте будем гением компьютера.