Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Из текстовой строки дата с временем получить только дату VBA
 
Добрый вечер.
Помогите, уже все голову сломал, вроде задача простая, но уже перебрал кучу вариантов. Ни как не могу получить из текстовой строки, которая содержит дату + время, только дату заменив значения в исходном столбце. Решение необходимо именно макросом. На данном этапе макрос в файле превращает текст в дату с временем.
Спасибо, все откликнувшимся.  
 
Добрый вечер!
Код
Sub Дата_из_текста()
    Dim r, c As Range
    With ActiveSheet
        Set r = Intersect(.UsedRange, .[a:a]).Offset(1)
        r.FormulaLocal = r.FormulaLocal
        r.NumberFormat = "dd.mm.yyyy"
        For Each c In r
            .Cells(c.Row, c.Column) = Format(c.Value2, "dd.mm.yyyy")
        Next c
    End With
End Sub
Изменено: Настя_Nastya - 16 сен 2020 21:53:42
 
Здравствуйте. А может так?
Код
Sub Дата_из_текста()
    Dim r As Range
    With ActiveSheet
        Set r = Intersect(.UsedRange, .[a:a]).Offset(1)
        r.Replace What:=" *", Replacement:=""
        'r.FormulaLocal = r.FormulaLocal
        'r.NumberFormat = "dd.mm.yyyy"
    End With
End Sub

 
Настя_Nastya, добрый вечер. Спасибо, я тоже про бывал циклом(забыл прописать в #1), Ваш вариант полностью рабочий, но есть одно но в исходных данных более 10 000 ячеек , цикл очень долго выполняется, в любом случае спасибо за уделенное время.

gling,  здравствуйте это гениально более 10 000 ячеек меньше, чем за 5 секунд. А я целый день мучился, а оказалось, всё как всегда просто возьми да замени. Спасибо еще раз.
 
С массивом:
Код
Sub Macro1()
Dim LastRow As Long, i As Long, Arr()
    LastRow = Cells(Rows.Count, 1).End(xlUp).Row
    Arr = Range(Cells(2, 1), Cells(LastRow, 1)).Value
    For i = 1 To UBound(Arr)
        Arr(i, 1) = CDate(Split(Arr(i, 1))(0))
    Next
    Range("B2").Resize(UBound(Arr), 1).Value = Arr
End Sub
 
Добрый вечер.Юрий М,  превосходно, 10 000 строк меньше, чем за 5 сек. Я тоже крутил-крутил эти массивы, но так и не докрутил, пока они мне не поддаются.
Спасибо за решение.  
 
Привет! Посмотрите ещё в сторону инструмента Текст по столбцам.
Страницы: 1
Читают тему (гостей: 1)
Наверх