Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Формат даты макросом
 
Добрый день всем.
Есть отчет  из 1с, колонку  из текстового формата необходимо преобразовать в Дату
Заменяю "." на "/" все получается.
Но если делаю такой процесс макросом
Код
Columns("B:B").Select
    Selection.Replace What:=".", Replacement:="/", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Columns("B:B").Select
    Selection.NumberFormat = "dd.mm.yy;@"

То ячейки с днем до 09 макрос форматирует как нужно  а с10 прописывает как 10/11/2014

Где можно ковырнуть, что поправить, что бы заработал как нужно
Или  каким макросом можно  преобразовать эту колонку в Дату?
 
Может проще? Установить у ячеек, где надо дату - формат ячеек "Дата"
1. Где-нибудь в любой ячейке ввести 1
2. Скопировать эту ячейку
3. Выделить диапазон с "датами"
4. Пкм- спец.вставка - умножить.
Кому решение нужно - тот пример и рисует.
 
И Хде ваш макрос в файле?
Код
Sub Макрос1()
    Columns("B:B").TextToColumns Destination:=Range("B1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
        :=Array(1, 4), TrailingMinusNumbers:=True
End Sub
 
как вариант
Код
Sub DateCorrect()
    Dim r As Long
    For r = 1 To Cells(Rows.Count, 2).End(xlUp).Row
        If Cells(r, 2) Like "##.##.####" Then
            Cells(r, 2) = DateSerial(Right(Cells(r, 2), 4), Mid(Cells(r, 2), 4, 2), Left(Cells(r, 2), 2))
            Cells(r, 2).NumberFormat = "dd.mm.yy;@"
        End If
    Next r
End Sub
Изменено: webley - 24 Мар 2015 15:20:35
 
Спасибо. Даже  получилось. Не знаю почему это проще.))
Вот  только  почему  ошибка  такая возникает "с днем до 09 макрос форматирует как нужно а с10 прописывает как 10/11/2014" было бы очень  интересно узнать.а оодн
При чем  на  одном стоит Excell 10  она происходит а на другом 13-й  нет
 
Дело в том, что в VBA дата по умолчанию воспринимается в формате MM/dd/yyyy.
Обратите внимание, что исходная дата 02.12.2014 при помощи вашего макроса превращается в 12.02.2014
Так что "правильно", по идее должны прописываться даты до 12 числа включительно
 
webley, вот  спасибо, теперь  все стало на свои места. А  в 13 Excell есть настройка что невилирует этот закон VBA ?
Благодарю
Михаил С. - Так же  спасибо,  ваш вариант работает как надо .
Страницы: 1
Читают тему (гостей: 1)