2010 - [решено] макрос преобразования форматов
-
kontox
2010 - [решено] макрос преобразования форматов
Подскажите, как используя регулярные выражения переделать формат дат с 10.05.2005 на формат 10-05-2005 . нужно именно макросом , а не ctrl+h и заменить точку на тире
-
Iska
Re: 2010 - [решено] макрос преобразования форматов
Надо полагать, его нет у Вас в списке форматов. Насколько я понимаю, перед тем, как использовать пользовательский тип формата в .FindFormat/.ReplaceFormat — его нужно добавить к списку пользовательских форматов. Т.е., что-то наподобие:
Код:
поскольку единственным известным мне способом программного добавления является применение формата к ячейке листа рабочей книги. В примере была взята некая пустая ячейка, отформатирована потребным форматом, сделан поиск и замена, затем эта же пустая ячейка приведена к формату по умолчанию.
Код:
Код: Выделить всё
Option Explicit
Sub Макрос1()
ActiveSheet.Range("D1").NumberFormat = "dd-mm-yyyy"
With Application
With .FindFormat
.Clear
.NumberFormat = "m/d/yyyy"
End With
With .ReplaceFormat
.Clear
.NumberFormat = "dd-mm-yyyy"
End With
End With
ActiveSheet.Cells.Replace What:="", Replacement:="", SearchFormat:=True, ReplaceFormat:=True
ActiveSheet.Range("D1").NumberFormat = "General"
End Subпоскольку единственным известным мне способом программного добавления является применение формата к ячейке листа рабочей книги. В примере была взята некая пустая ячейка, отформатирована потребным форматом, сделан поиск и замена, затем эта же пустая ячейка приведена к формату по умолчанию.
-
kontox
Re: 2010 - [решено] макрос преобразования форматов
okshef, не -не, тут задачка стоит именно рег.выражениями)
-
okshef
Re: 2010 - [решено] макрос преобразования форматов
kontox, можно и без макроса. Откройте окно форматов ячеек, выберите "Все форматы",
в окно "Тип" введите ДД-ММ-ГГГГ
в окно "Тип" введите ДД-ММ-ГГГГ
-
Iska
Re: 2010 - [решено] макрос преобразования форматов
kontox, упакуйте образец Вашей рабочей книги в архив и выложите последний сюда, либо на RGhost.
-
okshef
Re: 2010 - [решено] макрос преобразования форматов
kontox, код такой
Код:
Вместо Selecton вы можете использовать любое выражение массива, ячейки, а код вкладывать в циклы... Простор для фантазии огромен.
Все зависит от ваших хотелок и начальных условий
Код:
Код: Выделить всё
Selection.NumberFormat = "dd-mm-yyyy"Вместо Selecton вы можете использовать любое выражение массива, ячейки, а код вкладывать в циклы... Простор для фантазии огромен.
Все зависит от ваших хотелок и начальных условий
-
Iska
Re: 2010 - [решено] макрос преобразования форматов
okshef, ему, наверное, всё же надо не просто установить, а заменить только те, где есть установленный формат «dd.mm.yyyy», т.е., по условию. И, наверное, будет проще использовать поиск и замену, что-то наподобие такого:
Код:
хотя меня и удивляет выделенное (полный код был получен из макрорекордера).
Код:
Код: Выделить всё
Sub Ìàêðîñ1()
With Application
With .FindFormat
.Clear
.NumberFormat = "m/d/yyyy"
End With
With .ReplaceFormat
.Clear
.NumberFormat = "dd-mm-yyyy"
End With
End With
ActiveSheet.Cells.Replace What:="", Replacement:="", SearchFormat:=True, ReplaceFormat:=True
End Subхотя меня и удивляет выделенное (полный код был получен из макрорекордера).
-
kontox
Re: 2010 - [решено] макрос преобразования форматов
kontox, не понял от:
Цитата kontox:
как можно сделать чтобы отобразились те данные, где
в столбце А тип number (4)
и ниже по тексту.
Цитата kontox:
как можно сделать чтобы отобразились те данные, где
в столбце А тип number (4)
2010 - [решено] макрос преобразования форматов
и ниже по тексту.