Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.05.2010, 01:08   #1
suxo
 
Регистрация: 25.05.2010
Сообщений: 8
По умолчанию преобразование дАтЫ в дату

Подскажите пожалуйста.
Я из интернета получаю дату в ячейку в таком формате
(Пнд 24 Май 2010 12:57:26)
именно со скобками и прочим. как написано

как на vba мне привести этот формат к
24.05.10 12:57

или проще: есть ячейка с :
(Пнд 24 Май 2010 12:57:26)

как на vba сделать из нее:
24.05.10 12:57

п.с. вообще у вас отличный форум я уже столько наподсматривал =))
suxo вне форума Ответить с цитированием
Старый 29.05.2010, 01:19   #2
Vikenty
Заслуженный флудер
Участник клуба
 
Аватар для Vikenty
 
Регистрация: 31.03.2010
Сообщений: 1,473
По умолчанию

Я могу сделать по ICQ 612-979-261
Vikenty вне форума Ответить с цитированием
Старый 29.05.2010, 02:19   #3
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

(Пнд 24 Май 2010 12:57:26) это в ячейку А1
Код:
=ДАТА(ПСТР(A1; ПОИСК(" ";A1;10)+1;4);ПОИСКПОЗ(ПСТР(A1;ПОИСК(" ";A1;6)+1;3);{"Янв";"Фев";"Мар";"Апр";"Май";"Июн";"Июл";"Авг";"Сен";"Окт";"Ноя";"Дек"});ПСТР(A1;6;2)) + ВРЕМЯ(ПСТР(A1;ДЛСТР(A1)-8;2);ПСТР(A1;ДЛСТР(A1)-5;2);ПСТР(A1;ДЛСТР(A1)-2;2))
- это в любую. Проверяйте для других данных.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете

Последний раз редактировалось IgorGO; 29.05.2010 в 02:22.
IgorGO вне форума Ответить с цитированием
Старый 29.05.2010, 03:34   #4
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию Вариант

Возможно, пригодится и такой
Код:
Sub ConvDate()
    inet = "(Пнд 24 Май 2010 12:57:26)"
    
    inet = Replace(inet, ")", "")   'правую скобку стёрли'
    inet = Mid(inet, 5)             'пропустили 4 первых символа'
    mine = Format(inet, "general date") 'получили дату нужного формата'
    MsgBox mine, vbInformation
End Sub
Sasha_Smirnov вне форума Ответить с цитированием
Старый 30.05.2010, 03:02   #5
suxo
 
Регистрация: 25.05.2010
Сообщений: 8
По умолчанию

ё! спасибо огромное Sasha_Smirnov!
(inet mine это встроенные штуки или просто переменные, их не надо определять в процедуре? я вставил код в процедуру свою, но inet и mine не определял, все работает =)
как поднять репутацию доброму человеку? =)
suxo вне форума Ответить с цитированием
Старый 30.05.2010, 23:16   #6
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

Цитата:
Сообщение от suxo Посмотреть сообщение
ё!
Уже этим всё сказано! Встроенный код!
Цитата:
Сообщение от suxo Посмотреть сообщение
inet mine это встроенные штуки или просто переменные, их не надо определять в процедуре?
Нет. Определяются сами, в процессе выполнения. Как иксы, игреки и т. п.
Цитата:
Сообщение от suxo Посмотреть сообщение
я вставил код в процедуру свою, но inet и mine не определял, все работает
Зачёт!!!
Цитата:
Сообщение от suxo Посмотреть сообщение
как поднять репутацию доброму человеку? =)
Уж п́однял так п́однял! И так неплохо.

Последний раз редактировалось Sasha_Smirnov; 31.05.2010 в 11:57. Причина: ударение.
Sasha_Smirnov вне форума Ответить с цитированием
Старый 31.05.2010, 12:48   #7
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию Обратное преобразование

Если выполнить следующий
Код:
mine = Format(mine, "(ddd, dddddd)"):MsgBox mine
(например, по Ctrl-G + Enter в редакторе VBA), то получится примерно то, что было. Это так, для справки.
Sasha_Smirnov вне форума Ответить с цитированием
Старый 01.06.2010, 10:10   #8
vikttur
Участник клуба
 
Регистрация: 16.05.2010
Сообщений: 1,249
По умолчанию

Понятно, что хочется VBA, но, раз уж зашел разговор...
В формуле IgorGO (думаю, по невнимательности) пропущен тип сопоставления ("0").
Если структура в ячейках одинакова, можно упростить - не высчитывать положение каждого элемента, например, ПСТР(A1;13;4).
(ПСТР(A1;18;2)+ПСТР(A1;21;2)/60)/24 - это для времени.
vikttur вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Преобразование даты alco84 Microsoft Office Access 2 17.03.2010 17:45
Преобразование даты Яр|/||< (^_^) Общие вопросы Delphi 7 18.02.2010 14:45
преобразование даты kate158 SQL, базы данных 1 19.08.2009 12:00
Преобразование даты John34 Microsoft Office Excel 4 24.06.2009 15:48
Преобразование даты Tavrida Microsoft Office Excel 6 31.03.2009 15:41