Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Разный формат даты в TextBox - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Разный формат даты в TextBox (Макросы/Sub)
Разный формат даты в TextBox
Dмитрий Дата: Воскресенье, 03.08.2014, 00:47 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 91
Репутация: 9 ±
Замечаний: 40% ±

Excel 2010
Здравствуйте!!! Подскажите, пожалуйста, почему дата отображается по-разному в TextBox на форме
К сообщению приложен файл: 4961427.xlsb (16.6 Kb)
 
Ответить
СообщениеЗдравствуйте!!! Подскажите, пожалуйста, почему дата отображается по-разному в TextBox на форме

Автор - Dмитрий
Дата добавления - 03.08.2014 в 00:47
Serge_007 Дата: Воскресенье, 03.08.2014, 07:05 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Здравствуйте
Так надо:
[vba]
Код
Private Sub UserForm_Initialize()
      Dim D1 As Date, D2 As Date
      D1 = [a1]: D2 = [b1]
      'TextBox1 = D1: TextBox2 = D2
      TextBox1 = Format(D1, "dd/mm/yyyy"): TextBox2 = Format(D2, "dd/mm/yyyy")
End Sub
[/vba]Почему так - понятно?


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеЗдравствуйте
Так надо:
[vba]
Код
Private Sub UserForm_Initialize()
      Dim D1 As Date, D2 As Date
      D1 = [a1]: D2 = [b1]
      'TextBox1 = D1: TextBox2 = D2
      TextBox1 = Format(D1, "dd/mm/yyyy"): TextBox2 = Format(D2, "dd/mm/yyyy")
End Sub
[/vba]Почему так - понятно?

Автор - Serge_007
Дата добавления - 03.08.2014 в 07:05
Dмитрий Дата: Вторник, 05.08.2014, 02:09 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 91
Репутация: 9 ±
Замечаний: 40% ±

Excel 2010
Прошу прощения. Остался без интернета на пару дней. Serge_007, спасибо за ответ. Получается, что невозможно изменить формат в уже заполненном TextBox. Или я чего-то не понял.
 
Ответить
СообщениеПрошу прощения. Остался без интернета на пару дней. Serge_007, спасибо за ответ. Получается, что невозможно изменить формат в уже заполненном TextBox. Или я чего-то не понял.

Автор - Dмитрий
Дата добавления - 05.08.2014 в 02:09
wild_pig Дата: Вторник, 05.08.2014, 08:51 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 517
Репутация: 97 ±
Замечаний: 0% ±

2003, 2013
Так вроде не тупит excel
[vba]
Код
TextBox1 = Format(Cells(1, 1), "dd/mm/yyyy")
TextBox2 = Format(Cells(1, 2), "dd/mm/yyyy")
[/vba]
Пардон, не глянул, что ответ Сергея должен был подойти.


Сообщение отредактировал wild_pig - Вторник, 05.08.2014, 08:54
 
Ответить
СообщениеТак вроде не тупит excel
[vba]
Код
TextBox1 = Format(Cells(1, 1), "dd/mm/yyyy")
TextBox2 = Format(Cells(1, 2), "dd/mm/yyyy")
[/vba]
Пардон, не глянул, что ответ Сергея должен был подойти.

Автор - wild_pig
Дата добавления - 05.08.2014 в 08:51
RAN Дата: Вторник, 05.08.2014, 09:27 | Сообщение № 5
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Или я чего-то не понял.

Именно. Для того, чтобы TextBox1 получил формат "dd/mm/yyyy", нужно выполнить макрос. Сам по себе макрос не запустится, его нужно запустить.
[vba]
Код
Private Sub UserForm_Initialize()
     Dim D1 As Date, D2 As Date
     D1 = [a1]: D2 = [b1]
     TextBox1 = D1: TextBox2 = D2
     TextBox1 = Format(TextBox1 , "dd/mm/yyyy"): TextBox2 = Format(TextBox2 , "dd/mm/yyyy")
End Sub
[/vba]
Код выдает правильный результат, но только однократно, при загрузке формы.
Если вручную сменить значение в TextBox1, необходимо снова запустить форматирование.
[vba]
Код
Private Sub TextBox1_Exit()
      TextBox1 = Format(TextBox1 , "dd/mm/yyyy")
End Sub
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение
Или я чего-то не понял.

Именно. Для того, чтобы TextBox1 получил формат "dd/mm/yyyy", нужно выполнить макрос. Сам по себе макрос не запустится, его нужно запустить.
[vba]
Код
Private Sub UserForm_Initialize()
     Dim D1 As Date, D2 As Date
     D1 = [a1]: D2 = [b1]
     TextBox1 = D1: TextBox2 = D2
     TextBox1 = Format(TextBox1 , "dd/mm/yyyy"): TextBox2 = Format(TextBox2 , "dd/mm/yyyy")
End Sub
[/vba]
Код выдает правильный результат, но только однократно, при загрузке формы.
Если вручную сменить значение в TextBox1, необходимо снова запустить форматирование.
[vba]
Код
Private Sub TextBox1_Exit()
      TextBox1 = Format(TextBox1 , "dd/mm/yyyy")
End Sub
[/vba]

Автор - RAN
Дата добавления - 05.08.2014 в 09:27
Dмитрий Дата: Вторник, 05.08.2014, 17:06 | Сообщение № 6
Группа: Пользователи
Ранг: Участник
Сообщений: 91
Репутация: 9 ±
Замечаний: 40% ±

Excel 2010
Сам по себе макрос не запустится, его нужно запустить.
Ну так мы его и запускаем
Private Sub UserForm_Activate()
1. Присваеваем TextBox1 = D1: TextBox2 = D2
2. Форматируем TextBox1 = Format(TextBox1, "dd/mm/yyyy"): TextBox2 = Format(TextBox2, "dd/mm/yyyy")
3. Результат: TextBox1 - 08.05.2014; TextBox2 - 22.08.2014; вместо 05.08.2014 и 22.08.2014 соответственно
Речь не идет о дальнейшей смене каких то значений в TextBox. Я набросал всего лишь пример с форматированием однократно, при активации формы
 
Ответить
Сообщение
Сам по себе макрос не запустится, его нужно запустить.
Ну так мы его и запускаем
Private Sub UserForm_Activate()
1. Присваеваем TextBox1 = D1: TextBox2 = D2
2. Форматируем TextBox1 = Format(TextBox1, "dd/mm/yyyy"): TextBox2 = Format(TextBox2, "dd/mm/yyyy")
3. Результат: TextBox1 - 08.05.2014; TextBox2 - 22.08.2014; вместо 05.08.2014 и 22.08.2014 соответственно
Речь не идет о дальнейшей смене каких то значений в TextBox. Я набросал всего лишь пример с форматированием однократно, при активации формы

Автор - Dмитрий
Дата добавления - 05.08.2014 в 17:06
RAN Дата: Вторник, 05.08.2014, 18:42 | Сообщение № 7
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Понятно.
TextBox - это всегда текст.
[vba]
Код
TextBox1 = D1
[/vba]
по умолчанию отображает дату в формате "mm/dd/yyyy"
Дальше этот текст преобразовывается текст в формате "dd/mm/yyyy".
А VBA, бедолага, не знает 08.05 это 8 мая или 5 августа. Но точно знает, что месяцев году всего 12 :D


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеПонятно.
TextBox - это всегда текст.
[vba]
Код
TextBox1 = D1
[/vba]
по умолчанию отображает дату в формате "mm/dd/yyyy"
Дальше этот текст преобразовывается текст в формате "dd/mm/yyyy".
А VBA, бедолага, не знает 08.05 это 8 мая или 5 августа. Но точно знает, что месяцев году всего 12 :D

Автор - RAN
Дата добавления - 05.08.2014 в 18:42
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Разный формат даты в TextBox (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!