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

Вход

Регистрация

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

 

= Мир MS Excel/По названию месяца получить его номер. - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » По названию месяца получить его номер. (Макросы/Sub)
По названию месяца получить его номер.
lopuxi Дата: Вторник, 15.09.2015, 15:47 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 142
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007, 2013
Добрый день
У меня вот кой вопрос.

Есть ли в VBA такая функция,которая позволила бы получить из месяца Январь = 1 из Февраль = 2 и т.д.

Вроде вот этой - MonthName(7), только на оборот?
Или какой то еще может еще есть просто способ?


О_о ...и так можно было?
 
Ответить
СообщениеДобрый день
У меня вот кой вопрос.

Есть ли в VBA такая функция,которая позволила бы получить из месяца Январь = 1 из Февраль = 2 и т.д.

Вроде вот этой - MonthName(7), только на оборот?
Или какой то еще может еще есть просто способ?

Автор - lopuxi
Дата добавления - 15.09.2015 в 15:47
SLAVICK Дата: Вторник, 15.09.2015, 15:57 | Сообщение № 2
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация: 766 ±
Замечаний: 0% ±

2019
Вот для месяца в А1
Код
=ТЕКСТ("01"&A1;"ММ")


Иногда все проще чем кажется с первого взгляда.
 
Ответить
СообщениеВот для месяца в А1
Код
=ТЕКСТ("01"&A1;"ММ")

Автор - SLAVICK
Дата добавления - 15.09.2015 в 15:57
Rioran Дата: Вторник, 15.09.2015, 16:14 | Сообщение № 3
Группа: Авторы
Ранг: Ветеран
Сообщений: 903
Репутация: 290 ±
Замечаний: 0% ±

Excel 2013
lopuxi, здравствуйте.

Я использую собственную функцию для этого:

[vba]
Код
Function MonthN(Target$) As Byte
     Dim Months, i&
     Months = Split("янв-фев-мар-апр-май-июн-июл-авг-сен-окт-ноя-дек", "-")
     Target = LCase(Left(Target, 3))
     For i = 0 To 11
         If Target = Months(i) Then
             MonthN = i + 1
             Exit Function
         End If
     Next i
End Function
[/vba]


Роман, Москва, voronov_rv@mail.ru
Яндекс-Деньги: 41001312674279
 
Ответить
Сообщениеlopuxi, здравствуйте.

Я использую собственную функцию для этого:

[vba]
Код
Function MonthN(Target$) As Byte
     Dim Months, i&
     Months = Split("янв-фев-мар-апр-май-июн-июл-авг-сен-окт-ноя-дек", "-")
     Target = LCase(Left(Target, 3))
     For i = 0 To 11
         If Target = Months(i) Then
             MonthN = i + 1
             Exit Function
         End If
     Next i
End Function
[/vba]

Автор - Rioran
Дата добавления - 15.09.2015 в 16:14
buchlotnik Дата: Вторник, 15.09.2015, 16:15 | Сообщение № 4
Группа: Заблокированные
Ранг: Участник клуба
Сообщений: 3442
Репутация: 929 ±
Замечаний: 20% ±

2010, 2013, 2016 RUS / ENG
в лоб на VBA как-то так:[vba]
Код
Function monthnumber(s$)
     Application.Volatile
     Dim i&
     For i = 1 To 12
         If MonthName(i) = s Then monthnumber = i: Exit Function
     Next i
End Function
[/vba]
К сообщению приложен файл: _monthnumber.xlsm (13.6 Kb)


Сообщение отредактировал buchlotnik - Вторник, 15.09.2015, 17:47
 
Ответить
Сообщениев лоб на VBA как-то так:[vba]
Код
Function monthnumber(s$)
     Application.Volatile
     Dim i&
     For i = 1 To 12
         If MonthName(i) = s Then monthnumber = i: Exit Function
     Next i
End Function
[/vba]

Автор - buchlotnik
Дата добавления - 15.09.2015 в 16:15
Gustav Дата: Вторник, 15.09.2015, 17:46 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2748
Репутация: 1137 ±
Замечаний: 0% ±

начинал с Excel 4.0, видел 2.1
Мои пять копеек - однострочное выражение:
[vba]
Код
Sub test()

      Dim ИмяМесяца, НомерМесяца
        
      ИмяМесяца = "Октябрь" 'или ИмяМесяца = "Окт"

      НомерМесяца = InStr(" нвеварпрайюнюлвгенктояек", LCase(Mid(ИмяМесяца, 2, 2))) / 2

      Debug.Print НомерМесяца

End Sub
[/vba]

P.S. Это я не сегодня придумал :), была похожая тема в "Мозговом штурме": http://www.excelworld.ru/forum/7-2537-28287-16-1350282793


МОИ: Ник, Tip box: 41001663842605

Сообщение отредактировал Gustav - Вторник, 15.09.2015, 17:56
 
Ответить
СообщениеМои пять копеек - однострочное выражение:
[vba]
Код
Sub test()

      Dim ИмяМесяца, НомерМесяца
        
      ИмяМесяца = "Октябрь" 'или ИмяМесяца = "Окт"

      НомерМесяца = InStr(" нвеварпрайюнюлвгенктояек", LCase(Mid(ИмяМесяца, 2, 2))) / 2

      Debug.Print НомерМесяца

End Sub
[/vba]

P.S. Это я не сегодня придумал :), была похожая тема в "Мозговом штурме": http://www.excelworld.ru/forum/7-2537-28287-16-1350282793

Автор - Gustav
Дата добавления - 15.09.2015 в 17:46
lopuxi Дата: Вторник, 15.09.2015, 18:19 | Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 142
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007, 2013
Всем большущее спасибо!!!
Благодаря представленным вариантам, я решил данную задачу. B) hands


О_о ...и так можно было?
 
Ответить
СообщениеВсем большущее спасибо!!!
Благодаря представленным вариантам, я решил данную задачу. B) hands

Автор - lopuxi
Дата добавления - 15.09.2015 в 18:19
Nic70y Дата: Вторник, 15.09.2015, 23:13 | Сообщение № 7
Группа: Друзья
Ранг: Экселист
Сообщений: 8760
Репутация: 2273 ±
Замечаний: 0% ±

Excel 2010
=ТЕКСТ("01"&A1;"ММ")

наверное я бы так же ответил,
но в своей практике стараюсь избегать "региональных" формул,
по этому так:
Код
=ПОИСК(ПСТР(A1;2;2);"ёнвеварпрайюнюлвгенктояек")/2
сразу не заметил Gustav- сделал тоже, но макросом


ЮMoney 41001841029809

Сообщение отредактировал Nic70y - Вторник, 15.09.2015, 23:16
 
Ответить
Сообщение
=ТЕКСТ("01"&A1;"ММ")

наверное я бы так же ответил,
но в своей практике стараюсь избегать "региональных" формул,
по этому так:
Код
=ПОИСК(ПСТР(A1;2;2);"ёнвеварпрайюнюлвгенктояек")/2
сразу не заметил Gustav- сделал тоже, но макросом

Автор - Nic70y
Дата добавления - 15.09.2015 в 23:13
Мир MS Excel » Вопросы и решения » Вопросы по VBA » По названию месяца получить его номер. (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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