1

Excel. Преобразование даты

Всем привет!
Профи, подскажите! Пишу макрос в Excel, тем самым автоматизируя определенную работу. Я получаю некий файл, затем копирую его в свой файл и оттуда, с помощью макросов, беру то, что мне не надо. Столкнулся со следующей проблемой, в исходном файле дата представлена как dd.mm.24. И при копировании эксель спрашивает в какой формат преобразовать, dd.mm.1924 или dd.mm.2024? Через кнопку ошибки можно одним кликом это поправить, но таких мест на листе несколько, а мне необходимо всё это запихнуть в макрос. Как можно решить данную задачу?

P.S. мне нужна именно dd.mm.2024

Заранее всем огромное спасибо!

Лига помощи Excel

111 постов918 подписчиков

Вы смотрите срез комментариев. Показать все
0
Автор поста оценил этот комментарий

Что и как копируете, что и как вставляете?

Возможны разные варианты

1. В исходных данных в ячейках может содержаться как текст, напоминающий дату, так и числовое значение, отформатированное как дата.

2. Копировать можно .Value, .Value2, .Text - в зависимости от п.1 они будут давать разный результат.

Соответственно, в зависимости от того, что скопировали, обрабатывать результат нужно по-разному. Ну и вставлять тоже - в виде текста? В виде числового значения с последующим форматированием в виде даты?


В первых двух строках - текст, в следующих - даты с разным форматированием.
Value и Value2 отличаются тем, что в случае даты содержат данные разных типов: Date и Double соответственно.


Option Explicit

Sub qwe()

Dim i As Long

For i = 1 To 4

Debug.Print i,

Debug.Print "["; Cells(i, 1).Value; "] = "; TypeName(Cells(i, 1).Value),

Debug.Print "["; Cells(i, 1).Value2; "] = "; TypeName(Cells(i, 1).Value2),

Debug.Print "["; Cells(i, 1).Text; "] = "; TypeName(Cells(i, 1).Text)

Next

End Sub


Иллюстрация к комментарию
раскрыть ветку (2)
0
Автор поста оценил этот комментарий

Решил так. Ни разу не программист, поэтому как смог. Работает)


Dim cell As Range

Dim D As Date

For Each cell In Range("D2:D3000, F2:F3000")

D = cell.Value

If cell.Value <> "" Then

cell.Value = D

End If

Next

0
Автор поста оценил этот комментарий

Спасибо за ответ, попробую. Копирую весь лист целиком и его же вставляю. Далее с помощью макроса все становится в нужные столбцы/строки/ячейки.

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества