Страницы: 1
RSS
Преобразовать Дата Время в Дату
 
Добрый день!
Подскажите пожалуйста как изменить макросом дату формата 04.05.2022 13:43:01 в 04.05.2022

пробую так:
Код
    With ActiveSheet
        Set rArea = Intersect(.UsedRange, .[b:b]).Offset(1)
        rArea.NumberFormat = "dd.mm.yyyy"
'        rArea.FormulaLocal = rArea.FormulaLocal
    End With

Отображение меняется, но значение остается прежним дата + время.
Как оставить только дату?


Заранее спасибо!
Изменено: K M - 27.06.2022 20:30:14
Karim
 
K M, отбросьте дробную часть
 
Цитата
написал:
K M, отбросьте дробную часть
не совсем понял как это сделать средсвами VBA
Karim
 

Функции Int и Fix удаляют дробную часть элемента число и возвращают результирующее целочисленное значение.

Изменено: bigorq - 27.06.2022 21:27:07
 
что то не получается...


  For Each rArea In Selection.Areas
       rArea.Value = Fix(rArea.Value)
  Next rArea


не могли бы пример показать?
Karim
 
Пример вы должны были прикрепить.

но смотрите, можно еще форматом 0 убрать

Код
Sub DateTime2Date() 
 For Each c In Worksheets("Лист1").Range("A1:a10").Cells 
  c.Value = int(c.Value)
 Next 
End Sub
 
Добрый ден!
так и не получается...
ошибка "Type mismatch "


Вручную решил сложением с 0  в соседнем столбце, затем заменой данных, хотелось бы понять как это правльно сделать в VBA


Заранее спасибо!
Изменено: K M - 28.06.2022 11:32:56
Karim
 
название темы:
как из текста содержащего дату и время получить чистую дату

ответ:
например таким макросом
Код
Sub DateTime2Date()
 Dim a, r&
 a = [a1].CurrentRegion
 For r = 1 To UBound(a)
   a(r, 1) = Int(CDate(a(r, 1)))
 Next
 [c1].Resize(UBound(a), 1) = a
End Sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
K M, добрый день! Так?:
Код
Sub DateTime2Date()
 For Each c In Worksheets("Sheet1").Range("A1:a10").Cells
  c.Offset(0, 1).Value = CDate(Format(Split(c.Value, " ")(0), "dd.mm.yyyy"))
 Next
End Sub
Изменено: artemkau88 - 28.06.2022 11:46:29
 
Код
Sub DateTime2Date()
    Dim c As Range
    On Error Resume Next
    For Each c In Worksheets("Sheet1").Range("A1:A21").Cells
        c.Value = Int(CDate(c.Value))
    Next c
End Sub
 
Код
Sub tt()
    Range("A1:A21").TextToColumns DataType:=xlDelimited, ConsecutiveDelimiter:=True, FieldInfo:=Array(Array(1, 4), Array(2, 9))
End Sub
Скажи мне, кудесник, любимец ба’гов...
 
Спасибо!
Karim
Страницы: 1
Наверх