По названию месяца получить его номер.
lopuxi
Дата: Вторник, 15.09.2015, 15:47 |
Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 142
Репутация:
0
±
Замечаний:
0% ±
Excel 2007, 2013
Добрый день У меня вот кой вопрос. Есть ли в VBA такая функция,которая позволила бы получить из месяца Январь = 1 из Февраль = 2 и т.д. Вроде вот этой - MonthName(7), только на оборот? Или какой то еще может еще есть просто способ?
Добрый день У меня вот кой вопрос. Есть ли в VBA такая функция,которая позволила бы получить из месяца Январь = 1 из Февраль = 2 и т.д. Вроде вот этой - MonthName(7), только на оборот? Или какой то еще может еще есть просто способ? lopuxi
О_о ...и так можно было?
Ответить
Сообщение Добрый день У меня вот кой вопрос. Есть ли в VBA такая функция,которая позволила бы получить из месяца Январь = 1 из Февраль = 2 и т.д. Вроде вот этой - MonthName(7), только на оборот? Или какой то еще может еще есть просто способ? Автор - lopuxi Дата добавления - 15.09.2015 в 15:47
SLAVICK
Дата: Вторник, 15.09.2015, 15:57 |
Сообщение № 2
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация:
766
±
Замечаний:
0% ±
2019
Иногда все проще чем кажется с первого взгляда.
Ответить
Сообщение Вот для месяца в А1 Автор - 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]
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
Роман, Москва, 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]
в лоб на 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
Сообщение отредактировал 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
Группа: Админы
Ранг: Участник клуба
Сообщений: 2843
Репутация:
1194
±
Замечаний:
±
начинал с 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
Мои пять копеек - однострочное выражение: [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
МОИ: Ник , 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
Всем большущее спасибо!!! Благодаря представленным вариантам, я решил данную задачу.
Всем большущее спасибо!!! Благодаря представленным вариантам, я решил данную задачу. lopuxi
О_о ...и так можно было?
Ответить
Сообщение Всем большущее спасибо!!! Благодаря представленным вариантам, я решил данную задачу. Автор - lopuxi Дата добавления - 15.09.2015 в 18:19
Nic70y
Дата: Вторник, 15.09.2015, 23:13 |
Сообщение № 7
Группа: Друзья
Ранг: Экселист
Сообщений: 9131
Репутация:
2415
±
Замечаний:
0% ±
Excel 2010
наверное я бы так же ответил, но в своей практике стараюсь избегать "региональных" формул, по этому так:Код
=ПОИСК(ПСТР(A1;2;2);"ёнвеварпрайюнюлвгенктояек")/2
сразу не заметил Gustav- сделал тоже, но макросом
наверное я бы так же ответил, но в своей практике стараюсь избегать "региональных" формул, по этому так:Код
=ПОИСК(ПСТР(A1;2;2);"ёнвеварпрайюнюлвгенктояек")/2
сразу не заметил Gustav- сделал тоже, но макросом Nic70y
ЮMoney 41001841029809
Сообщение отредактировал Nic70y - Вторник, 15.09.2015, 23:16
Ответить
Сообщение наверное я бы так же ответил, но в своей практике стараюсь избегать "региональных" формул, по этому так:Код
=ПОИСК(ПСТР(A1;2;2);"ёнвеварпрайюнюлвгенктояек")/2
сразу не заметил Gustav- сделал тоже, но макросом Автор - Nic70y Дата добавления - 15.09.2015 в 23:13