Страницы: 1
RSS
Как проще всего сохранить форматирование даты в умной таблице?
 
Доброго дня друзья!
Не думаю, что спрошу что-то новое, но не смог найти ничего простого доступного и понятного. А по сему, проявляю интерес:
Вот, у меня есть умная таблица со списком долгов по заявкам в поставку. В них добавляются новые строки из файлов свежих заявок при помощи планировщика.
Первая добавляется обычно нормально, а на следующей, формат даты обязательно слетает (нужен обычный краткий формат дд.мм.гггг. а становится мм.дд.гггг). А менеджер по продажам, которая приносит бабки, очень с...ка капризная и хочет чтобы все само настраивалось.))) Подскажите плиз! Вот исполняемый код:
Код
Sheets("заявка в поставку").Select
lr = Cells(Rows.Count, 4).End(xlUp).Row
arr = Range(Cells(8, 4), Cells(lr, 15)).Value
Application.EnableEvents = False
Application.Calculation = xlCalculationManual
Set importWb = Workbooks.Open("Y:\Цены+Учет\УЧЕТ\Учет движения поставок ПЗПК роботизированный.xlsm", , False, , , 1234)
Sheets("Долги").Select
lRow = Cells(Rows.Count, 1).End(xlUp).Row + 1
Cells(lRow, 1).Resize(UBound(arr), UBound(arr, 2)) = arr
......? вот сюда нужно добавить код
importWb.Save
importWb.Close
Application.EnableEvents = True
Application.Calculation = xlCalculationAutomatic
Path = "Z:\ЗАЯВКИ\Архив\ЗАЯВКИ в поставку\Отеч\2021\"
ThisWorkbook.SaveAs Path & [C4] & "_" & [C5] & "_" & [C3] & ".xlsb"

Как мне добавить сюда форматирование столбцов 2,12,19,20,22 умной таблицы ("Таблица5") в краткий формат даты (дд.мм.гггг)?

Заранее благодарен, как и за рекомендации по модернизации и оптимизации кода макроса.

 
Код
Cells(lRow, 1).Resize(UBound(arr), UBound(arr, 2)).Columns(1).NumberFormat = "dd.mm.yyyy"
 
Я верно понимаю что Columns(1)  отвечает за нужный мне столбец и могу ли я перечислить все нужные типа Columns(2, 12, 19, ...)?
 
Понимаете правильно.
Так перечислить не сможете.
Можете перечислить, например, так:
Код
Cells(lRow, 1).Resize(UBound(arr), UBound(arr, 2)).Columns(2).NumberFormat = "dd.mm.yyyy"
Cells(lRow, 1).Resize(UBound(arr), UBound(arr, 2)).Columns(12).NumberFormat = "dd.mm.yyyy"
Изменено: МатросНаЗебре - 15.10.2021 10:44:40
 
Семен Фадеев, при большом количестве столбцов можно циклом
Код
For Each x In Array(2, 12, 19)
    Cells(lRow, 1).Resize(UBound(arr), UBound(arr, 2)).Columns(x).NumberFormat = "dd.mm.yyyy"
Next x
есть ещё варианты)
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Так дай Вам Бог сливок миску) Благодарю покорно!)
P.S. Forgive my impoliteness. Special thanks to Матрос!
Изменено: Семен Фадеев - 15.10.2021 12:25:45
 
Цитата
Семен Фадеев: дай Вам Бог сливок миску
пожалуйста, но это всё-таки Матросу попутного ветра в паруса - его вариант, а от меня просто цикл  :)
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Страницы: 1
Наверх