Принимать Допускаются даты только от пользователя в Excel VBA
В моей недавней задаче от меня требовалось принимать ввод от пользователя. Одним из входных значений была дата рождения, и это, конечно же, должна быть дата.
То, что я делал, сохранял ввод в виде вариантного типа данных. Это сделало код безошибочным, и он принимал любые значения, которые давал пользователь. Ниже приведен код:
Dim dob As Variant dob = Application.InputBox("Enter Your Date of Birth")
Это, конечно, был неправильный подход, поскольку пользователь может ввести любое значение, которое может не соответствовать действительной дате.
Я хочу, чтобы мой код обнаруживал любую недопустимую дату и просил пользователя ввести действительную дату и завершить подпрограмму.
Вот код, который позволяет пользователям вводить только действительную дату.
Sub check_date() Dim dob As Date On Error GoTo Errorhandler dob = Application.InputBox("Enter Your Date of Birth") On Error GoTo 0 Debug.Print dob Exit Sub Errorhandler: MsgBox "Please enter a valid date." End Sub
Когда вы запустите указанный выше код, он попросит вас ввести дату вашего рождения. Если вы введете неправильную дату, вам будет предложено ввести действительную дату и завершить процедуру.
How does it work?* The first and most important thing we have done is to use the Date type variable to store the expected date. Now, if you try to store a value that is not a valid date, it will through an error of «type mismatch».
Затем мы перехватываем эту ошибку с помощью обработчика ошибок On Error Goto *.
On Error GoTo Errorhandler dob = Application.InputBox("Enter Your Date of Birth") On Error GoTo 0
Используя On Error, мы переходим к тегу Errorhandler, который находится непосредственно перед оператором End Sub. Таким образом, пользователя просят ввести действительную дату, и подпрограмма заканчивается.
Errorhandler: MsgBox "Please enter a valid date." End Sub
Если пользователь вводит действительную дату, управление проходит нормально, и ввод сохраняется в переменной dob. Мы поместили подоператор Exit, чтобы элемент управления не попал в обработчик ошибок и сразу же завершил процедуру. Так что поместите все конечные операторы перед exit sub. И это все.
Так что да, ребята, вот как вы ограничиваете пользователя вводить только действительную дату.
Сообщите мне, если у вас есть какие-либо сомнения относительно дат VBA или любого другого запроса, связанного с Excel / VBA. Задайте нам вопрос в разделе комментариев ниже.
Статьи по теме:
link: / vba-insert-date-time-stamp-with-vba [Вставить отметку даты и времени с помощью VBA]
| Чтобы ввести метку времени, когда определенная ячейка была заполнена с использованием этого кода VBA. Если вы введете любое значение в столбец A, соседняя ячейка в столбце B автоматически заполнится временем ввода.
`link: / excel-macros-and-vba-date-time-in-vb [Дата и время в VBA] | Найдите все темы о дате и времени в VBA на этой странице.
Популярные статьи:
link: / keyboard-formula-shortcuts-50-excel-shortcuts-to-вашу-продуктивность [50 комбинаций клавиш Excel для повышения вашей продуктивности]
| Выполняйте свою задачу быстрее. Эти 50 ярлыков заставят вас работать в Excel еще быстрее.
link: / формулы-и-функции-введение-функции-vlookup [Функция ВПР в Excel]
| Это одна из наиболее часто используемых и популярных функций Excel, которая используется для поиска значений из разных диапазонов и листов. link: / tips-countif-in-microsoft-excel [COUNTIF в Excel 2016]
| Подсчитайте значения с условиями, используя эту удивительную функцию. Вам не нужно фильтровать данные для подсчета определенного значения.
Функция Countif важна для подготовки вашей приборной панели.
link: / excel-formula-and-function-excel-sumif-function [Как использовать функцию СУММЕСЛИ в Excel]
| Это еще одна важная функция приборной панели. Это поможет вам суммировать значения для конкретных условий.