Function DateString$(vData)
If IsDate(vData) = True Then
DateString$ = Format(vData, "dd mmmm yyyy\ г.")
Else
DateString$ = "нет даты"
End If
End Function
Как склонять месяцы в excel'e? (оч. нужно)
набиваю дату, например - 22.07.2006, правой кн. мыши --- формат ячеек ---- дата ---- тип: 14 Март, 1999 --- пишет 22 Июнь, 2006.
Мне нужно чтобы дата выглядела так: 22 июня 2006 г.
Как это сделать?
Вариант "вручную" не подходит. Но подходит вариант создание нового формата даты или мудрёной логической формулы.
Вот что мне подсказали сделать, но почему-то не работает когда набиваю в ячейке =МЕСЯЦРОД (1). потом не знаю как внедрить эту функцию внутрь даты.
Если кто знает как создать формат буду благодарен.
Public Function МЕСЯЦРОД(n As Byte) As String
If n = 1 Then
МЕСЯЦРОД = "января"
ElseIf n = 2 Then
МЕСЯЦРОД = "февраля"
ElseIf n = 3 Then
МЕСЯЦРОД = "марта"
ElseIf n = 4 Then
МЕСЯЦРОД = "апреля"
ElseIf n = 5 Then
МЕСЯЦРОД = "мая"
ElseIf n = 6 Then
МЕСЯЦРОД = "июня"
ElseIf n = 7 Then
МЕСЯЦРОД = "июля"
ElseIf n = 8 Then
МЕСЯЦРОД = "августа"
ElseIf n = 9 Then
МЕСЯЦРОД = "сентября"
ElseIf n = 10 Then
МЕСЯЦРОД = "октября"
ElseIf n = 11 Then
МЕСЯЦРОД = "ноября"
ElseIf n = 12 Then
МЕСЯЦРОД = "декабря"
Else
МЕСЯЦРОД = "а х.з."
End If
End Function
В более ранних версиях, для получения текста, можно воспользоваться, например, следующей формулой :
=ПОДСТАВИТЬ(ТЕКСТ(A2;"ДД ММММ ГГГГ \г.");ВЫБОР(МЕСЯЦ(A2);"ь";"ь";"т";"ь";"й";"ь";"ь";"т";"ь";"ь";"ь");ВЫБОР(МЕСЯЦ(A2);"я";"я";"та";"я";"я";"я";"я";"та";"я";"я";"я"))
=СТРОЧН(...)
Или пользовательской функцией :
Код:
Пример вызова пользовательской функции : =DateString(A2) или =DateString("22.07.2006")
Цитата: pashulka
=ПОДСТАВИТЬ(ТЕКСТ(A2;"ДД ММММ ГГГГ \г.");ВЫБОР(МЕСЯЦ(A2);"ь";"ь";"т";"ь";"й";"ь";"ь"; "т";"ь";"ь";"ь");ВЫБОР(МЕСЯЦ(A2);"я";"я";"та";"я"; "я";"я";"я";"та";"я";"я";"я"))
=СТРОЧН(...)
Эта формула работает! Спасибо большое.
Только не понятно - зачем =СТРОЧН(...) нужно? Работает и без этого.
Функция почему-то не работает :(
Ответ на этот вопрос заключается в Ваших требованиях, цитирую :
[QUOTE=olen]Мне нужно чтобы дата выглядела так: 22 июня 2006 г.[/QUOTE]
P.S. А пользовательская функция естественно работает, так что разбирайтесь, где Вы разместили свою функцию, как вызываете, включены ли макросы ...
Вот исправленная, если кому понадобится
=ПОДСТАВИТЬ(ТЕКСТ(C4;"ДД ММММ ГГГГ \г.");ВЫБОР(МЕСЯЦ(C4);"ь";"ь";"т";"ь";"й";"ь";"ь"; "т";"ь";"ь";"ь";"ь");ВЫБОР(МЕСЯЦ(C4);"я";"я";"та";"я"; "я";"я";"я";"та";"я";"я";"я";"я"))
По поводу функции - мои действия (учтите что я профан в программировании):
- alt+F11
- выбрал "эта книга" справа - появилось окошко
- вставил функцию в general, в другом списке появилось Datestring
- сохранил файл
- зашёл в excel не отключая макросы
- не работает
Интересно что я не так сделал (в любом случае - не критично - формула мне удобней)? Просто самому интересно.
Может версия экселя старая?
Что касается пользовательской функции, то её нужно разместить в стандартном модуле, а не в модуле класса, коим является модуль книги ThisWorkbook (ЭтаКнига)