Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Макрос изменить формат с текстового на дату
 
Добрый день, необходимо, что бы макрос удалил ненужные слова из ячейки и применил необходимый формат.
макрос у меня такой получился:
Код
Sub Name()
    
    Range("B4").Replace what:="Текущая дата: ", Replacement:=""
    Range("B4").NumberFormat = "yyyy/mm/dd"
        
End Sub
но есть проблема, слова удаляются, а вот формат не меняется до того как я не зайду в ячейку, как это исправить?
Изменено: Paha_Fil - 13 Апр 2015 03:05:15
 
Сначала формат, потом Replace.
 
нет, не работает так, все тоже самое,  если я вас правильно понял
Код
Sub Name()
     
    Range("B4").NumberFormat = "yyyy/mm/dd"    
    Range("B4").Replace what:="Текущая дата: ", Replacement:=""
        
End Sub

Изменено: Paha_Fil - 13 Апр 2015 03:06:30
 
Тогда так
Код
With Range("B4")
  .NumberFormat = "yyyy/mm/dd"
  .Value = CDate(Replace(.Value, "Текущая дата: ", ""))
  ActiveSheet.Name = .Text
End With
 
как сложно то)  но это действительно работает! спасибо Казанский,
 
а можно ли сделать что бы имя листа было без года? то есть ММ.ДД, кажется проще удалить первых пять символов слева, может что то типа этого?:
Код
With Range("B4")
  .NumberFormat = "yyyy/mm/dd"
  .Value = CDate(Replace(.Value, "Текущая дата: ", ""))
  ActiveSheet.Name = .Text Left(-5)
End With
но конечно в таком виде не работает
 
...
Код
ActiveSheet.Name = Month(.Text) & "." & Day(.Text)
 
Или:
Код
ActiveSheet.Name = Right(.Text, 5)
 
Код
ActiveSheet.Name = Format(.Text, "ММ.ДД")
Неизлечимых болезней нет, есть неизлечимые люди.
 
Код
  ActiveSheet.Name = Format(.Value, "mm/dd")
Изменено: Казанский - 13 Апр 2015 10:09:54
 
Спасибо, воспользовался вариантом от Алишер Шакиров, спасибо всем за помощь!  
Страницы: 1
Читают тему (гостей: 1)