Поле ввода даты в диапазоне 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

измените даты на свои и добавьте свой код.

Примечания. Внутри этого элемента управления имеется большое количество настроек: от цветов до типов отображения, флажков, стиля выпадающего меню, значений по умолчанию, минимальных и максимальных дат. А также пользовательские форматы даты могут применяться в зависимости от локали.

Другие вопросы по тегам