Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Метод Replace замена формата времени
 
Добрый день, ребят!

Глупый вопрос, но придется его задать, потому что сломал уже всю голову и искал на форумах - ответа не нашел.
С помощью стандартной команды Ctrl+H в столбце В изменяю "22:*:*" на "22:00". Записываю процедуру стандартной записью макросов, получаю данный код:
Код
    Columns("B:B").Select
    Selection.Replace What:="22:*:*", Replacement:="22:00", LookAt:=xlWhole, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False

В данном коде меняю 22 на следующее, требующее замены: 21 или 20, или 19 - код не отрабатывает (значения в ячейках не изменяются).
Требуется так заменять время с 8:00:00 до 22:00:00. Вручную долго. Подозреваю, что дело в формате ячеек либо в том, что в vba время по-другому исчисляется. Помогите, пожалуйста.
 
FrinG, из объяснения+пример все равно непонятно, что нужно получить.
Нарисуйте в файле руками, что должно получиться.
Метод Replase вам не подойдет, как мне кажется.
Изменено: Михаил Витальевич С. - 2 янв 2021 04:32:11
 
Цитата
Михаил Витальевич С. написал:
непонятно, что нужно получить.
Михаил, в столбце В нужно заменить время с 8:??:?? на 8:00, 9:??:?? на 9:00 и т.д. до 22:??:?? на 22:00, где 8, 9, ... , 22 это часы, а ?? = хаотичные значения, т.е минуты и секунды.  грубо говоря, минуты и секунды превратить в нули.
 
Дата и время - это десятичные числа и поиск указанный вами  - не сработает, так как ищет текст, ну или отображаемое время.
Цитата
FrinG написал:
Требуется так заменять время с 8:00:00 до 22:00:00. Вручную долго.
ну не так и долго но если постоянно делать, то
Код
Sub Macro1()
Application.EnableEvents = False
For Each cell In Selection.SpecialCells(xlCellTypeConstants)
    If IsNumeric(cell) Then cell.Value = Int(cell * 24) / 24
Next
Application.EnableEvents = False
End Sub
По вопросам из тем форума, личку не читаю.
 
Код
Sub H0000()
For R = 2 To 352
  Cells(R, "B") = Int(Cells(R, "B") * 24) / 24
Next R
End Sub
гы :D . Не успел :oops:
С Новым Годом, Господа!!!
Изменено: Апострофф - 2 янв 2021 09:59:47
 
Апострофф,  ОБА не правы ибо если
Цитата
FrinG написал:
Метод Replace замена формата времени
то ни REPLACE нет, ни формата времени :-)
По вопросам из тем форума, личку не читаю.
 
Replace, оказалось, и не нужен)) Просто даже интересно было почему стандартная запись макроса делает через Replace, а воспроизводить через него не хочет :(

БМВ, Апострофф,Спасибо, ребята! Не догадался, что можно умножить и поделить  :D

Проблема решена, огромное спасибо!!
С новым годом!
Страницы: 1
Читают тему (гостей: 1)
Наверх