Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Какой функцией на VBA вернуть месяц и год, Код VBA для записи в ячейки даты (в формате мм.гггг)
 
Нужен пример написания кода VBA, который заносит в ячейку значение в формате мм.гггг. Например 12.2018, 01.2019...
Значения берутся с другой ячейки где указана дата.
Заранее спасибо!
 
такая функция VBA
Format(dt, "MM.YYYY")
вернет из переменной dt, хранящей дату, данные в нужном формате

или формула листа
=ТЕКСТ(A1; "ММ.ГГГГ")
когда в А1 дата
Изменено: Ігор Гончаренко - 9 Янв 2019 11:58:00
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
off
Цитата
Какой функцией на VBA вернуть месяц и год,
- чувствуется человек не догулял. :-)
 
Цитата
Ігор Гончаренко написал:
такая функция VBAFormat(dt, "MM.YYYY")вернет из переменной dt, хранящей дату, данные в нужном формате
Работает, только почему-то результат не тот. У меня дата 12.01.2018, а в результате 12,2018 (указана запятая вместо точки). Поменял формат ячейки на ДАТА  выдает 12.01.1900  4:50:36.
Вот строка примера:
Код
Dim dl As Date 
dl = Workbooks("Maket.xlsm").Worksheets(1).Cells(13, 1) 
Workbooks("Maket.xlsm").Worksheets(1).Cells(5, 2).Value = Format(dl, "MM.YYYY")
Изменено: Nikolas85 - 9 Янв 2019 13:02:20
 
Цитата
БМВ написал:
- чувствуется человек не догулял. :-)
Ага :D  Решил поправить отчет с Макросом, но так редко пользуюсь VBA, что все забыл :D  
 
Есть еще поисковики и справочники.
 
Форматируйте ячейку:
Код
Sub qqq()
    Dim dl As Date
    dl = Cells(13, 1)
    Cells(5, 2) = dl
    Cells(5, 2).NumberFormat = "mm/yyyy;@"
End Sub

 
Цитата
Nikolas85 написал:
Работает, только почему-то результат не тот
покажите файл с не тем результатом
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Юрий М,тоже работает, но в значении ячейки все же указывается полная дата 01.12.2018, хотя если не редактировать ячейку будет на вид 12.2018. Нужно конкретно значение 12.2018 (мм.гггг). Возможно, мне кажется, нужно преобразовать дату в текст и потом вывести в ячейку конкретно те значения, которые мне нужны?
 
Т.е. Вам нужна не дата, а именно текст?
 
Код
Sub qqq()
    Dim dl As Date
    dl = Cells(13, 1)
    Cells(5, 2) = Month(dl) & "." & Year(dl)
    Cells(5, 2).NumberFormat = "@"
End Sub
 
Юрий М, может сначала текстовый формат установить, а после значение вносить?

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Цитата
Ігор Гончаренко написал:
покажите файл с не тем результатом
 
Можно и так. В данном случае разницы не будет.
 
отмечаете В5,
формат ячеек - Текстовый,
выполняете макрос
наслаждаетесь результатами
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Юрий М, Сеньер, спасибо! Код работает
Код
Sub qqq()
    Dim dl As Date
    dl = Cells(13, 1)
    Cells(5, 2) = Month(dl) & "." & Year(dl)
    Cells(5, 2).NumberFormat = "@"
End Sub
Изменено: Nikolas85 - 9 Янв 2019 14:46:07
 
Цитата
Юрий М написал:
В данном случае разницы не будет.
Будет (проверил макрос из #11).
Владимир
 
Цитата
sokol92 написал:
Будет
У меня нет разницы: я ведь тоже проверял ) Но никто не запрещает переставить строчки местами для уверенности.
 
если переставить местами 2 последние строки - все сработает сразу
можно оставить как есть, но выполнить 2 раза, тогда то же все нормально.
Изменено: Ігор Гончаренко - 9 Янв 2019 14:55:01
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
Страницы: 1
Читают тему (гостей: 1)
Наверх