Здравствуйте!
В таблице имеются ячейки с датами в текстовом формате, например:
Если делать руками, то я указываю в свойствах формат дд.мм.гггг.. Соответственно на выходе я должен получить:
Но ячейка преобразуется в указанный формат, если только по ней дважды щелкнуть и нажать ввод.
Теперь мне нужно все это сделать в VBA. Но щелкнуть и нажать ввод там не получится. Поэтому я перезаписываю ячейку:
Здесь чутка лишнего может написано, но суть одна: на выходе, в случае:
авг 21
я получаю:
21.08.2022
вместо 01.08.2021.
И я никак не могу понять, что нужно сделать, чтобы дата не переворачивалась, чтобы 21 в строке считалась не датой, а годом.
Хотя, если делать руками, как я это описал в начале, то получается нормально.
И, кстати, calculate не работает как двойной щелчок по ячейке и ввод.
В таблице имеются ячейки с датами в текстовом формате, например:
авг 21 |
10 авг 21 |
авг 21 |
01.08.2021 |
10.08.2021 |
01.08.2021 |
Теперь мне нужно все это сделать в VBA. Но щелкнуть и нажать ввод там не получится. Поэтому я перезаписываю ячейку:
Код |
---|
Sub abc() Cells(8, 10).NumberFormat = "dd.mm.yyyy" Cells(8, 10).Calculate a = CDate(Cells(8, 10)) Cells(8, 10).ClearContents Cells(8, 10).NumberFormat = "dd.mm.yyyy" Cells(8, 10) = a Cells(8, 10).Calculate End Sub |
Здесь чутка лишнего может написано, но суть одна: на выходе, в случае:
авг 21
я получаю:
21.08.2022
вместо 01.08.2021.
И я никак не могу понять, что нужно сделать, чтобы дата не переворачивалась, чтобы 21 в строке считалась не датой, а годом.
Хотя, если делать руками, как я это описал в начале, то получается нормально.
И, кстати, calculate не работает как двойной щелчок по ячейке и ввод.