Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Как диапазону присвоить заранее подготовленное форматировани - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как диапазону присвоить заранее подготовленное форматировани (Макросы/Sub)
Как диапазону присвоить заранее подготовленное форматировани
Bamboo Дата: Среда, 12.06.2019, 00:51 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 107
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Всем привет!

Делаю сложный отчет, размеры которого заранее неизвестны ни по горизонтали ни по вертикали. Все данные сначала готовлю в массиве, затем разом присваиваю значения этого массива диапазону. Работает быстро. Но как ячейкам этого диапазона передать также быстро форматирование. Если назначать форматы ячейкам путем их перебора, даже с отключенным скринапдейтом, получиться очень ресурсная операция. Нет ли возможности как то присвоить форматы из массивов? В один массив залить границы, в другой шрифты, в третий заливку, в четвертый условное форматирование?

Заранее спасибо!
 
Ответить
СообщениеВсем привет!

Делаю сложный отчет, размеры которого заранее неизвестны ни по горизонтали ни по вертикали. Все данные сначала готовлю в массиве, затем разом присваиваю значения этого массива диапазону. Работает быстро. Но как ячейкам этого диапазона передать также быстро форматирование. Если назначать форматы ячейкам путем их перебора, даже с отключенным скринапдейтом, получиться очень ресурсная операция. Нет ли возможности как то присвоить форматы из массивов? В один массив залить границы, в другой шрифты, в третий заливку, в четвертый условное форматирование?

Заранее спасибо!

Автор - Bamboo
Дата добавления - 12.06.2019 в 00:51
_Igor_61 Дата: Среда, 12.06.2019, 21:49 | Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 504
Репутация: 90 ±
Замечаний: 0% ±

Excel 2007
Можно и без перебора обойтись. Например, берем первый столбец в Вашей таблице и шрифт со второй до последней строки делаем жирным:
[vba]
Код
Range("A2:A" & Cells(Rows.Count, 1).End(xlUp).Row).Font.Bold = True
[/vba]
По аналогии и со всем остальным - определяете границы диапазона и назначаете этому диапазону нужное форматирование.
 
Ответить
СообщениеМожно и без перебора обойтись. Например, берем первый столбец в Вашей таблице и шрифт со второй до последней строки делаем жирным:
[vba]
Код
Range("A2:A" & Cells(Rows.Count, 1).End(xlUp).Row).Font.Bold = True
[/vba]
По аналогии и со всем остальным - определяете границы диапазона и назначаете этому диапазону нужное форматирование.

Автор - _Igor_61
Дата добавления - 12.06.2019 в 21:49
_Boroda_ Дата: Четверг, 13.06.2019, 09:31 | Сообщение № 3
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16666
Репутация: 6478 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Здесь многое зависит от того, насколько различные форматы у ячеек в разных частях диапазона. Если все одинаково, то самое простое - это заранее в одной строке где-нибудь (или на отдельном листе, или просто в первой строке таблицы) сделать руками нужное форматирование (включая УФ), затем макросом скопировать эти ячейки и сразу во всу таблицу вставить Cgtwdcnfdrf - Ajhvfn
[vba]
Код
Range("D3:Q3").Copy
    Range("D3:Q999").PasteSpecial Paste:=xlPasteFormats
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеЗдесь многое зависит от того, насколько различные форматы у ячеек в разных частях диапазона. Если все одинаково, то самое простое - это заранее в одной строке где-нибудь (или на отдельном листе, или просто в первой строке таблицы) сделать руками нужное форматирование (включая УФ), затем макросом скопировать эти ячейки и сразу во всу таблицу вставить Cgtwdcnfdrf - Ajhvfn
[vba]
Код
Range("D3:Q3").Copy
    Range("D3:Q999").PasteSpecial Paste:=xlPasteFormats
[/vba]

Автор - _Boroda_
Дата добавления - 13.06.2019 в 09:31
Bamboo Дата: Пятница, 14.06.2019, 22:37 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 107
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Всем спаибо!
Вариант _Igor_61 не подошел, т.к. форматирование идет ступеньками (со смещением на 1 ячейку)

_Boroda_, воспользовался вашим вариантом, оказалось очень удобно: мало кода легко менять форматирование. Скорость нормальная, запросы к БД занимают больше ресурсов.
 
Ответить
СообщениеВсем спаибо!
Вариант _Igor_61 не подошел, т.к. форматирование идет ступеньками (со смещением на 1 ячейку)

_Boroda_, воспользовался вашим вариантом, оказалось очень удобно: мало кода легко менять форматирование. Скорость нормальная, запросы к БД занимают больше ресурсов.

Автор - Bamboo
Дата добавления - 14.06.2019 в 22:37
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как диапазону присвоить заранее подготовленное форматировани (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!