Предположим, вы добавили список дат в поле со списком. При выборе даты из поля со списком, дата будет отображаться как номер серии в поле со списком, как показано ниже. Как отобразить формат даты в выводе поля со списком в Excel? Вы можете попробовать метод из этой статьи.
Формат отображения даты в выводе поля со списком с кодом VBA
Формат отображения даты в выводе поля со списком с кодом VBA
Приведенный ниже код VBA может помочь вам отобразить формат даты в выводе поля со списком в Excel. Пожалуйста, сделайте следующее.
1. Убедитесь, что Режим проектирования включается под Застройщик таб. Смотрите скриншот:
2. Щелкните правой кнопкой мыши поле со списком с датой, которую необходимо отображать в формате даты, затем щелкните Просмотреть код из контекстного меню.
3. Затем Microsoft Visual Basic для приложений появится всплывающее окно, замените исходный код VBA в окне кода приведенным ниже кодом VBA.
Код VBA: отображение формата даты в выводе поля со списком в Excel
Private Sub ComboBox1_Click()
ActiveSheet.ComboBox1.Value = Format(ActiveSheet.ComboBox1.Value, "mm/dd/yyyy")
End Sub
Внимание: в коде ComboBox1 — это имя поля со списком, «мм / дд / гггг» — это формат даты, который вы будете отображать в выводе поля со списком.
4. нажмите другой + Q ключи, чтобы закрыть Microsoft Visual Basic для приложений окно и выключите Режим проектирования под Застройщик меню.
С этого момента при выборе даты из поля со списком она будет отображаться в виде указанного формата даты в выходных данных вместо номера серии, как показано ниже.
Статьи по теме:
- Как скопировать значение поля со списком в активную ячейку в Excel?
- Как скрыть или показать командную кнопку на основе указанного значения ячейки в Excel?
- Как открыть конкретный рабочий лист по выбранному значению поля со списком в Excel?
- Как предотвратить или отключить ввод текста в поле со списком в Excel?
- Как выйти из поля со списком, чтобы выбрать конкретную ячейку в Excel?
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
Комментарии (0)
Оценок пока нет. Оцените первым!
Combobox, формат даты |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
The following code allows only date values in the format «dd.mm.yyyy» to be added into the textbox (change that for combobox). Dates must be larger than 01.01.2000 and smaller than 31.12.2099 and a message is displayed to alert if the date entered is in the future:
Private Sub TextBox1_Change()
Dim ldm As Integer
Dim Reply As Long
Application.EnableEvents = False
If InStr(1, Join(Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, "."), "|"), Right(TextBox1.Text, 1)) = 0 Then _
TextBox1.Text = Left(TextBox1.Text, Len(TextBox1.Text) - 1)
If Len(TextBox1.Text) = 1 Then
If TextBox1.Text > 3 Then
TextBox1.Text = "0" & TextBox1.Text
End If
ElseIf Len(TextBox1.Text) = 2 Then
If Mid(TextBox1.Text, 2, 1) = "." Then
TextBox1.Text = "0" & Left(TextBox1.Text, 1) & "."
Exit Sub
End If
If TextBox1.Text < 31 Then
TextBox1.Text = TextBox1.Text & "."
Else
TextBox1.Text = "31."
End If
ElseIf Len(TextBox1.Text) = 4 Then
If Right(TextBox1.Text, 1) > 1 Then
TextBox1.Text = Left(TextBox1.Text, 3) & "0" & Right(TextBox1.Text, 1)
End If
ElseIf Len(TextBox1.Text) = 5 Then
If Right(TextBox1.Text, 1) = "." Then
If Mid(TextBox1.Text, 4, 1) = 0 Then
TextBox1.Text = Left(TextBox1.Text, 4)
Exit Sub
Else
TextBox1.Text = Left(TextBox1.Text, 3) & "0" & Mid(TextBox1.Text, 4, 1) & "."
Exit Sub
End If
End If
If Right(TextBox1.Text, 2) < 13 Then
TextBox1.Text = TextBox1.Text & "."
Else
TextBox1.Text = Left(TextBox1.Text, 3) & "12."
End If
ElseIf Len(TextBox1.Text) = 7 Then
If Right(TextBox1.Text, 1) <> "2" Then
TextBox1.Text = Left(TextBox1.Text, 6) & "2"
End If
ElseIf Len(TextBox1.Text) = 8 Then
If InStr(1, Join(Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9), "|"), Right(TextBox1.Text, 1)) = 0 Then _
TextBox1.Text = Left(TextBox1.Text, Len(TextBox1.Text) - 1)
If Right(TextBox1.Text, 1) > 0 Then
TextBox1.Text = Left(TextBox1.Text, 7) & "0"
End If
ElseIf Len(TextBox1.Text) = 9 Then
If InStr(1, Join(Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9), "|"), Right(TextBox1.Text, 1)) = 0 Then _
TextBox1.Text = Left(TextBox1.Text, Len(TextBox1.Text) - 1)
ElseIf Len(TextBox1.Text) = 10 Then
If IsNumeric(TextBox1.Text) = False Then TextBox1.Text = Left(TextBox1.Text, 8)
ldm = Format(DateSerial((Right(TextBox1.Text, 4)), (Mid(TextBox1.Text, 4, 2)) + 1, 0), "d")
If Left(TextBox1.Text, 2) > ldm Then TextBox1.Text = ldm & Right(TextBox1.Text, 8)
If DateSerial(Right(TextBox1.Text, 4), Mid(TextBox1.Text, 4, 2), Left(TextBox1.Text, 2)) > Now() Then
Reply = MsgBox("Das eingegebene Datum liegt in der Zukunft." & vbNewLine & "Wollen Sie es so lassen?", vbYesNo, "Datum in der Zukunft")
If Reply = vbNo Then
TextBox1.Text = Format(Now(), "DD.MM.YYYY")
End If
End If
If Mid(TextBox1.Text, 3, 1) <> "." Then TextBox1.Text = Left(TextBox1.Text, 2) & "." & Right(TextBox1.Text, 7)
If Mid(TextBox1.Text, 6, 1) <> "." Then TextBox1.Text = Left(TextBox1.Text, 5) & "." & Right(TextBox1.Text, 4)
ElseIf Len(TextBox1.Text) > 10 Then
TextBox1.Text = Left(TextBox1.Text, 10)
End If
Application.EnableEvents = True
End Sub
-
#1
Hi all,
I tried to do this in a userform:
-Display a date value of cell «a1» of «try» sheet in combobox1
-when arrow is press down, combobox display date list from c1:c10
-when new date selected, date cell in «a1» value is changed accordingly
I got all solved by changing the combobox properties:
controlsource: =a1
rowsource: =c1:c10
But i cannot get the date format correctly. When I search the forum i got this:
Private Sub ComboBox1_Change()
ComboBox1.Value = Format(ComboBox1.Value, «dd/mm/yyyy»)
End Sub
But when new date is selected, it display an error message:
«Run-time error ‘380’: Could not set the Value property. Invalid property value.»
What should I do?
Thanks,
Enter current date or time
Ctrl+: enters current time. Ctrl+; enters current date. Use Ctrl+: Ctrl+; Enter for current date & time.
rjp
Board Regular
-
#2
Hi,
You’re trying to set the combobox’s value to itself. I think your code should read:
Code:
Private Sub ComboBox1_Change()
Worksheets("Try").Cells(1, 1).Value = Format(ComboBox1.Value, "dd/mm/yyyy")
End Sub
-
#3
Hi Rob,
Thanks for your reply, but it still not workin as expected.
I’ll try and browse around some more. Will let you know if I found the solution.
Thanks again & have a nice day!
-
02-15-2006, 08:15 AM
#1
ComboBox Date Format Problem
I have a combobox on a userform that is linked via the row source property to
a list of dates on Worksheet A. The dates are formatted as dd/mmm/yyyy on
the worksheet and are displayed as such within the combobox. However when
the user selects a date from the list it is displayed in the combobox in a
general format i.e. «36125». My userform is set up that when the user makes
a selection that it writes the contents to WorksheetB, the date is displayed
correctly as dd/mmm/yyyy when written to the worksheet.Does anyone know how I may change the combobox so that the date is displayed
correctly when selected and in such a way that the format does not change
when written to the underlying worksheet??All ideas welcomed!
Thanks,
Ciara
-
02-15-2006, 08:30 AM
#2
RE: ComboBox Date Format Problem
Try
Private Sub ComboBox1_Change()
ComboBox1.Value = Format(ComboBox1.Text, «dd/mmm/yyyy»)
End Sub«CiaraG» wrote:
> I have a combobox on a userform that is linked via the row source property to
> a list of dates on Worksheet A. The dates are formatted as dd/mmm/yyyy on
> the worksheet and are displayed as such within the combobox. However when
> the user selects a date from the list it is displayed in the combobox in a
> general format i.e. «36125». My userform is set up that when the user makes
> a selection that it writes the contents to WorksheetB, the date is displayed
> correctly as dd/mmm/yyyy when written to the worksheet.
>
> Does anyone know how I may change the combobox so that the date is displayed
> correctly when selected and in such a way that the format does not change
> when written to the underlying worksheet??
>
> All ideas welcomed!
>
> Thanks,
>
> Ciara
-
02-15-2006, 10:20 AM
#3
RE: ComboBox Date Format Problem
Thanks you so much. I have been thrawling through the internet for days now
and have tried variations of the code below but with no luck. Thank you.«Toppers» wrote:
> Try
>
> Private Sub ComboBox1_Change()
> ComboBox1.Value = Format(ComboBox1.Text, «dd/mmm/yyyy»)
> End Sub
>
> «CiaraG» wrote:
>
> > I have a combobox on a userform that is linked via the row source property to
> > a list of dates on Worksheet A. The dates are formatted as dd/mmm/yyyy on
> > the worksheet and are displayed as such within the combobox. However when
> > the user selects a date from the list it is displayed in the combobox in a
> > general format i.e. «36125». My userform is set up that when the user makes
> > a selection that it writes the contents to WorksheetB, the date is displayed
> > correctly as dd/mmm/yyyy when written to the worksheet.
> >
> > Does anyone know how I may change the combobox so that the date is displayed
> > correctly when selected and in such a way that the format does not change
> > when written to the underlying worksheet??
> >
> > All ideas welcomed!
> >
> > Thanks,
> >
> > Ciara
-
07-16-2014, 03:17 PM
#4
Forum Contributor
Re: ComboBox Date Format Problem
OK, many years too late, but for possible benefit of others, IF the date is properly formatted in the cell on your spreadsheet, instead of using .value, use .text.
Please let me finally help somebody; everyone else has helped me soooooo much………..
-
11-19-2019, 11:12 AM
#5
Forum Contributor
Re: ComboBox Date Format Problem
I have done it. I changes .value to .text!!