Поле ввода даты в диапазоне VBA?
У меня есть файл Excel, и в первом столбце (A) у меня есть несколько таких дат:
17/10/2013
18/10/2013
19/10/2013
20/10/2013
21/10/2013
22/10/2013
Другие столбцы содержат некоторые данные. Мне нужно создать поле ввода, которое принимает все внутри диапазона дат. Я имею в виду; я нажимаю на кнопку, и это показывает мне всплывающее окно, как:
insert start date: 17/10/2013 (i can decide the date)
insert end date: 20/10/2013 (i can decide the date)
и тогда я могу положить макрос, который я сделал. Так что мой макрос только для чтения данных в этом диапазоне. Является ли это возможным?
2 ответа
Не существует определенного типа даты, поэтому вам придется немного проверить ошибки. Вот одна идея, как получить дату от пользователя:
Dim dateString As String, TheDate As Date
Dim valid As Boolean: valid = True
Do
dateString = Application.InputBox("Enter A Date: ")
If IsDate(dateString) Then
TheDate = DateValue(dateString)
valid = True
Else
MsgBox "Invalid date"
valid = False
End If
Loop Until valid = True
Вы можете добавить указатель даты в форму использования и проверить ввод для своего диапазона следующим образом:
Откройте VBA и форму, которую вы хотите ввести.
В панели инструментов щелкните правой кнопкой мыши и выберите дополнительные элементы управления
Затем в списке выберите элемент управления Microsoft Date и Time Picker:
Добавьте элемент управления в вашу форму:
затем установите код в соответствии с событием DTPicker1_Change():
Private Sub DTPicker1_Change()
If DTPicker1.Value < DateSerial(2013, 10, 20) And DTPicker1.Value > DateSerial(2013, 10, 15) Then
Debug.Print "Put Your Code Here"
End If
End Sub
измените даты на свои и добавьте свой код.
Примечания. Внутри этого элемента управления имеется большое количество настроек: от цветов до типов отображения, флажков, стиля выпадающего меню, значений по умолчанию, минимальных и максимальных дат. А также пользовательские форматы даты могут применяться в зависимости от локали.