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

Вход

Регистрация

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

 

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

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как привоить все свойства ячеек одного диапазона другому (VBA_Excel)
Как привоить все свойства ячеек одного диапазона другому
SGerman Дата: Воскресенье, 10.07.2016, 14:34 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 97
Репутация: 4 ±
Замечаний: 20% ±

Excel 2003
Здравствуйте !

Есть некоторая ячейка - образец
Задача - сделать все ячейки некоторого диапазона такими же, как образец (очертания, цвет, фонт и т.д.)

"Ручным способом" (используя код "магнитофона") написал такое (в rng ячейка-образец):

[vba]
Код
   Selection.Borders(xlEdgeLeft).LineStyle = rng.Borders(xlEdgeLeft).LineStyle
   Selection.Borders(xlEdgeLeft).Weight = rng.Borders(xlEdgeLeft).Weight
   Selection.Borders(xlEdgeLeft).ColorIndex = rng.Borders(xlEdgeLeft).ColorIndex
   
   Selection.Borders(xlEdgeTop).LineStyle = rng.Borders(xlEdgeTop).LineStyle
   Selection.Borders(xlEdgeTop).Weight = rng.Borders(xlEdgeTop).Weight
   Selection.Borders(xlEdgeTop).ColorIndex = rng.Borders(xlEdgeTop).ColorIndex
   
   Selection.Borders(xlEdgeBottom).LineStyle = rng.Borders(xlEdgeBottom).LineStyle
   Selection.Borders(xlEdgeBottom).Weight = rng.Borders(xlEdgeBottom).Weight
   Selection.Borders(xlEdgeBottom).ColorIndex = rng.Borders(xlEdgeBottom).ColorIndex

   Selection.Borders(xlEdgeRight).LineStyle = rng.Borders(xlEdgeRight).LineStyle
   Selection.Borders(xlEdgeRight).Weight = rng.Borders(xlEdgeRight).Weight
   Selection.Borders(xlEdgeRight).ColorIndex = rng.Borders(xlEdgeRight).ColorIndex
   
   'Selection.Borders(xlInsideVertical).LineStyle = rng.Borders(xlInsideVertical).LineStyle
   'Selection.Borders(xlInsideVertical).Weight = rng.Borders(xlInsideVertical).Weight
   'Selection.Borders(xlInsideVertical).ColorIndex = rng.Borders(xlInsideVertical).ColorIndex

   'Selection.Borders(xlInsideHorizontal).LineStyle = rng.Borders(xlInsideHorizontal).LineStyle
   'Selection.Borders(xlInsideHorizontal).Weight = rng.Borders(xlInsideHorizontal).Weight
   'Selection.Borders(xlInsideHorizontal).ColorIndex = rng.Borders(xlInsideHorizontal).ColorIndex
[/vba]

(Кстати первый закомментареннй блок не работает, если в rng - одна ячейка или колонка, а второй - если одна ячейка или строка)

Все работает. А можно ли все одной строкой ? Ну что-то типа

[vba]
Код
  Selection.Borders = rng.Borders
[/vba]
или

[vba]
Код
  Set  Selection.Borders = rng.Borders
[/vba]

Однако обе строчки ошибочные

Спасибо за помощь и участие


Мудрость приходит со старостью. Но иногда старость приходит одна :)
 
Ответить
СообщениеЗдравствуйте !

Есть некоторая ячейка - образец
Задача - сделать все ячейки некоторого диапазона такими же, как образец (очертания, цвет, фонт и т.д.)

"Ручным способом" (используя код "магнитофона") написал такое (в rng ячейка-образец):

[vba]
Код
   Selection.Borders(xlEdgeLeft).LineStyle = rng.Borders(xlEdgeLeft).LineStyle
   Selection.Borders(xlEdgeLeft).Weight = rng.Borders(xlEdgeLeft).Weight
   Selection.Borders(xlEdgeLeft).ColorIndex = rng.Borders(xlEdgeLeft).ColorIndex
   
   Selection.Borders(xlEdgeTop).LineStyle = rng.Borders(xlEdgeTop).LineStyle
   Selection.Borders(xlEdgeTop).Weight = rng.Borders(xlEdgeTop).Weight
   Selection.Borders(xlEdgeTop).ColorIndex = rng.Borders(xlEdgeTop).ColorIndex
   
   Selection.Borders(xlEdgeBottom).LineStyle = rng.Borders(xlEdgeBottom).LineStyle
   Selection.Borders(xlEdgeBottom).Weight = rng.Borders(xlEdgeBottom).Weight
   Selection.Borders(xlEdgeBottom).ColorIndex = rng.Borders(xlEdgeBottom).ColorIndex

   Selection.Borders(xlEdgeRight).LineStyle = rng.Borders(xlEdgeRight).LineStyle
   Selection.Borders(xlEdgeRight).Weight = rng.Borders(xlEdgeRight).Weight
   Selection.Borders(xlEdgeRight).ColorIndex = rng.Borders(xlEdgeRight).ColorIndex
   
   'Selection.Borders(xlInsideVertical).LineStyle = rng.Borders(xlInsideVertical).LineStyle
   'Selection.Borders(xlInsideVertical).Weight = rng.Borders(xlInsideVertical).Weight
   'Selection.Borders(xlInsideVertical).ColorIndex = rng.Borders(xlInsideVertical).ColorIndex

   'Selection.Borders(xlInsideHorizontal).LineStyle = rng.Borders(xlInsideHorizontal).LineStyle
   'Selection.Borders(xlInsideHorizontal).Weight = rng.Borders(xlInsideHorizontal).Weight
   'Selection.Borders(xlInsideHorizontal).ColorIndex = rng.Borders(xlInsideHorizontal).ColorIndex
[/vba]

(Кстати первый закомментареннй блок не работает, если в rng - одна ячейка или колонка, а второй - если одна ячейка или строка)

Все работает. А можно ли все одной строкой ? Ну что-то типа

[vba]
Код
  Selection.Borders = rng.Borders
[/vba]
или

[vba]
Код
  Set  Selection.Borders = rng.Borders
[/vba]

Однако обе строчки ошибочные

Спасибо за помощь и участие

Автор - SGerman
Дата добавления - 10.07.2016 в 14:34
Manyasha Дата: Воскресенье, 10.07.2016, 17:04 | Сообщение № 2
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
SGerman, а скопировать формат с этой ячейки не подойдет?
[vba]
Код
    [a5].Copy
    Range("a10:c20").PasteSpecial Paste:=xlPasteFormats
[/vba]


ЯД: 410013299366744 WM: R193491431804
 
Ответить
СообщениеSGerman, а скопировать формат с этой ячейки не подойдет?
[vba]
Код
    [a5].Copy
    Range("a10:c20").PasteSpecial Paste:=xlPasteFormats
[/vba]

Автор - Manyasha
Дата добавления - 10.07.2016 в 17:04
SGerman Дата: Понедельник, 11.07.2016, 01:32 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 97
Репутация: 4 ±
Замечаний: 20% ±

Excel 2003
Спасибо, попробую :)


Мудрость приходит со старостью. Но иногда старость приходит одна :)
 
Ответить
СообщениеСпасибо, попробую :)

Автор - SGerman
Дата добавления - 11.07.2016 в 01:32
SGerman Дата: Вторник, 12.07.2016, 11:22 | Сообщение № 4
Группа: Пользователи
Ранг: Участник
Сообщений: 97
Репутация: 4 ±
Замечаний: 20% ±

Excel 2003
Маша, как обычно, Ваш совет оказался почти идеальным :)
Есть, правда, один недостаток в этой технологии: вместе с цветом, окантовкой, шрифтом и прочим нужным барахлом в целевые ячейки переносится и выравнивание, что в итоге сбрасывает те, что установлены пользователем вручную (как ему типа удобно).
Можно, конечно, ограничиться только цветом (возможно, так в итоге и будет), но это такое

Спасибо большое


Мудрость приходит со старостью. Но иногда старость приходит одна :)
 
Ответить
СообщениеМаша, как обычно, Ваш совет оказался почти идеальным :)
Есть, правда, один недостаток в этой технологии: вместе с цветом, окантовкой, шрифтом и прочим нужным барахлом в целевые ячейки переносится и выравнивание, что в итоге сбрасывает те, что установлены пользователем вручную (как ему типа удобно).
Можно, конечно, ограничиться только цветом (возможно, так в итоге и будет), но это такое

Спасибо большое

Автор - SGerman
Дата добавления - 12.07.2016 в 11:22
SGerman Дата: Вторник, 12.07.2016, 11:43 | Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 97
Репутация: 4 ±
Замечаний: 20% ±

Excel 2003
Manyasha,
А Вы, оказывается, не Маняша, не Маша, и никакая не Марфа Ивановна, я узнал,- что Вы - Марина !
Простите великодушно, что не сразу "вычислил".
Марина - чудесное имя. Возможно, я посвящу ему (и Вам персонально конечно) оду !

Извиняюсь за офтоп, но не смог удержаться :)


Мудрость приходит со старостью. Но иногда старость приходит одна :)
 
Ответить
СообщениеManyasha,
А Вы, оказывается, не Маняша, не Маша, и никакая не Марфа Ивановна, я узнал,- что Вы - Марина !
Простите великодушно, что не сразу "вычислил".
Марина - чудесное имя. Возможно, я посвящу ему (и Вам персонально конечно) оду !

Извиняюсь за офтоп, но не смог удержаться :)

Автор - SGerman
Дата добавления - 12.07.2016 в 11:43
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как привоить все свойства ячеек одного диапазона другому (VBA_Excel)
  • Страница 1 из 1
  • 1
Поиск:

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