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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.11.2009, 14:57   #1
KOSTIK1
Форумчанин
 
Аватар для KOSTIK1
 
Регистрация: 06.10.2009
Сообщений: 193
По умолчанию Как преобразовать дату которая находится в предложении?

Подскажите пожалуйста, как с помощью макроса, преобразовать дату которая находится в предложении?

Например "ваплывалов лворовралор 31.12.09 орыпваорыпоарп ловрыа."
на "ваплывалов лворовралор 31 Декабря 2009 орыпваорыпоарп ловрыа."

Учитывая что все подобные предложения находятся в столбце "С". Заранее СПАСИБО!
С Уважением, Костик
KOSTIK1 вне форума Ответить с цитированием
Старый 23.11.2009, 15:48   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Вот весь код:

Код:
Sub test()
    Dim cell As Range, ra As Range: Application.ScreenUpdating = False
    Set ra = Range([c1], Range("c" & Rows.Count).End(xlUp))
    For Each cell In ra.Cells
        If Len(cell) Then
            arr = Split(cell.Text, " ")
            For i = LBound(arr) To UBound(arr)
                слово = arr(i)
                If IsDate(слово) Then cell = Replace(cell.Text, слово, Format(слово, "DD MMMM YYYY"))
            Next i
        End If
    Next cell
End Sub
Нажмите зелёную кнопочку:

EducatedFool вне форума Ответить с цитированием
Старый 23.11.2009, 15:59   #3
KOSTIK1
Форумчанин
 
Аватар для KOSTIK1
 
Регистрация: 06.10.2009
Сообщений: 193
По умолчанию

Превосходно!!!!! Именно то что нужно! Спасибо.
С Уважением, Костик
KOSTIK1 вне форума Ответить с цитированием
Старый 23.11.2009, 16:10   #4
KOSTIK1
Форумчанин
 
Аватар для KOSTIK1
 
Регистрация: 06.10.2009
Сообщений: 193
По умолчанию

И если можно по ходу подобный вопрос, В строке "D" находятся тоже предложения где иногда встречается в начале строки дата на латинском "10 dek." как можно их подобным образом поменять на русский эквивалент "10 дек." Другие месяца(лат.) по соответственно сокращенному коду ДД МММ. Спасибо заранее за ответ!
С Уважением, Костик
KOSTIK1 вне форума Ответить с цитированием
Старый 23.11.2009, 19:28   #5
KOSTIK1
Форумчанин
 
Аватар для KOSTIK1
 
Регистрация: 06.10.2009
Сообщений: 193
По умолчанию

Уважаемый EducatedFool как было сказано код работает замечательно только обнаружил небольшой недостаток: если в тексте встречаются цифры вот в таком порядке " авпфва 5-7 фппф" то они тоже изменяются соответственно на "авпфва 05 июля 2009 фппф". Подскажите что можно "подкрутить" в вашем коде? Спасибо.
С Уважением, Костик
KOSTIK1 вне форума Ответить с цитированием
Старый 23.11.2009, 22:16   #6
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию



Код:
Sub test()
    Dim cell As Range, ra As Range: Application.ScreenUpdating = False
    Set ra = Range([c1], Range("c" & Rows.Count).End(xlUp))
    For Each cell In ra.Cells
        If Len(cell) Then
            arr = Split(cell.Text, " ")
            For i = LBound(arr) To UBound(arr)
                слово = arr(i)
                If IsDate(слово) And слово Like "##.##.##" Then _
                   cell = Replace(cell.Text, слово, Format(слово, "DD MMMM YYYY"))
            Next i
        End If
    Next cell

    ' как можно их поменять на русский эквивалент "10 дек."
    With Range("d:d")
        .Replace "dek.", "дек."
        .Replace "fev.", "февраля"
        .Replace "mar.", "марта"
        ' и т.д.
    End With
End Sub
EducatedFool вне форума Ответить с цитированием
Старый 24.11.2009, 00:02   #7
KOSTIK1
Форумчанин
 
Аватар для KOSTIK1
 
Регистрация: 06.10.2009
Сообщений: 193
По умолчанию

Теперь без проблем!!! Спасибо!!
С Уважением, Костик
KOSTIK1 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Преобразовать в дату Iskin Microsoft Office Excel 2 14.04.2009 07:57
Преобразовать в дату Marvel Microsoft Office Excel 21 22.01.2009 06:42
программа, которая запрашивает дату рождения и печатает название соответствующего знака Зодиака Алёночка2008 Помощь студентам 4 14.11.2008 10:49
цифра, которая находится в k-той позиции последовательности C-Jay Помощь студентам 4 09.11.2008 10:48
Как в TWebBrowser узнать адрес ссылки которая находится под курсором мышки SeRhy Общие вопросы Delphi 0 10.08.2008 10:11