Страницы: 1
RSS
Дублирование содержания ячеек вместе с исходным форматированием
 
Добрый вечер!
Уже перечитал кучу форумных сообщений, но так и не удалось решить задачу.
У меня есть два листа Лист1 и Лист2.
Лист1 содержит пару столбцов, которые постоянно пополняются новым содержанием. Также некоторые его ячейки отмечаются - жирным выделением, цветными заливками и тд.
Необходимо, чтобы Лист2 дублировал эти пару столбцов.

Чтобы Лист2 дублировал то, что в Лист1 прописал формулу =ЕСЛИ(Лист1!B3="";"";Лист1!B3) и размножил ее. Это дало только дублирование значения ячеек, но без форматирования.
Далее нашел, что это можно реализовать макросом, что и значение и форматирование будут переносится. Ок. Но все это происходит не в режиме реального времени. То есть, если я вношу изменения или дополнения в Лист1, то никаких изменений не происходит в Лист2 если все делать через макрос,а только лишь после его запуска, что в итоге придется делать каждый раз и часто.

Не знаю какой метод выбрать и как это вообще реализовать. Надо, чтобы вносимые изменения сразу же (в реальном времени) отражались в Лист2 и с форматированием. Не предполагал, что это задача окажется не так очевидна.
Прикрепляю файл, где использована формула.
Заранее благодарен за помощь!
 
Смотрите в сторону события листа  Worksheet_Change
 
Доброй ночи
В модуль листа 1
Код
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ra As Range, ra1 As Range
Set ra = Sheets("Лист1").Range("A3:B33")        'диапазон который копируем
Set ra1 = Sheets("Лист2").Range("A3:B33")       'ячейка в которую копируем
If Not Intersect(Target, ra) Is Nothing Then
    ra.Copy ra1
End If
End Sub
 
ra1 можно не устанавливать: копировать в верхнюю левую (первую) ячейку диапазона на втором листе.
 
не всегда
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
Опечатка.. Четвертая строка у меня такая должна быть
Код
Set ra1 = Sheets("Лист2").Range("A3")
Изменено: Alexander88 - 22.11.2014 16:51:37
 
Спасибо! В целом все работает.
Но есть один момент, не совсем понятно должно ли быть так:
1) изменения по содержания происходят сразу
2) затем дополняю ячейку форматом: заливка и тд = и вот здесь изменений в Лист2 никаких не происходит
3) но если я делаю запись в другой ячейки Лист1, то изменения , которые делались в пункте 2 начинают срабатывать в Лист2

Что это? Нормально так?
т.е. изменения по форматированию не отражаются в Лист2 до тех пор, пока не сделаю запись в другой ячейке Лист1
 
Изменение форматирования не отслеживается, как событие.
 
Код
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ra As Range, ra1 As Range
Set ra = Sheets("Лист1").Range("A3:B33")      'диапазон который копируем
Set ra1 = Sheets("Лист2").Range("A3")       'ячейка в которую копируем
If Not Intersect(Target, ra) Is Nothing Then
    ra.Copy ra1
End If
End Sub
 
Подскажите, пожалуйста, в рамках этого кода, можно ли еще добавить другой диапазон:
Например, чтобы он дублировал диапазон с F5 (Лист1) на J7 (Лист2)? и как это прописать?
И можно ли, чтобы диапазон "A3:B33" дублировался еще и в другие листы, например, в Лист3 "B9"?
 
Как еще в код добавить Set ra & Set ra1 ? Чтобы и другой диапазон дублировался?
 
здравствуйте!
у меня ровно противоположная задача. при вводе текста в ячейки одного листа, он дублируется в одноименные ячейки всех других листов. как это убрать?
причем листы уже были заполнены без дублирования, дублируются только те тексты, которые я ввожу сейчас, при корректировке документа.

UP: Создана тема http://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=92954&amp...
Изменено: fstnovember - 26.06.2017 08:35:03
 
Цитата
fstnovember написал: у меня ровно противоположная задача.
Цитата
2.6. Один вопрос - одна тема. Не следует в открываемой теме обозначать и задавать сразу несколько вопросов.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
Страницы: 1
Читают тему
Наверх