Добрый день!Возможно ли форматирование ячеек с одного листа дублировать на второй, но он другой формы?Формула дублирует значение ячейки,а вот с форматированием проблема. Нашёл что-то подобное,но если для каждой ячейки писать-это будет ужас [vba]
Код
Sub CopyPastInsert() Dim myRange As Range Set myRange = ActiveWorkbook.Sheets("Лист2").Range("A1") 'Set myRange = ActiveWorkbook.Worksheets("Лист2").Range("A1") 'myRange.Activate ActiveWorkbook.Worksheets("Лист2").Range("c10").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove myRange.Copy ' Range("A1").Copy ActiveWorkbook.Worksheets("Лист2").Range("c10").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False ActiveWorkbook.Worksheets("Лист2").Range("c10").PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Application.CutCopyMode = False Range("A1").Select End Sub
[/vba]
Добрый день!Возможно ли форматирование ячеек с одного листа дублировать на второй, но он другой формы?Формула дублирует значение ячейки,а вот с форматированием проблема. Нашёл что-то подобное,но если для каждой ячейки писать-это будет ужас [vba]
Код
Sub CopyPastInsert() Dim myRange As Range Set myRange = ActiveWorkbook.Sheets("Лист2").Range("A1") 'Set myRange = ActiveWorkbook.Worksheets("Лист2").Range("A1") 'myRange.Activate ActiveWorkbook.Worksheets("Лист2").Range("c10").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove myRange.Copy ' Range("A1").Copy ActiveWorkbook.Worksheets("Лист2").Range("c10").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False ActiveWorkbook.Worksheets("Лист2").Range("c10").PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Application.CutCopyMode = False Range("A1").Select End Sub
Выделите в первом листе диапазон и запустите это: [vba]
Код
Sub tt() With Selection shIn_ = .Parent.Index ad_ = .Address nr_ = .Rows.Count .Copy End With With Sheets(shIn_ + 1) .Select Application.ScreenUpdating = 0 With .Range(ad_) .PasteSpecial Paste:=xlPasteValues .PasteSpecial Paste:=xlPasteFormats For i = nr_ - 1 To 1 Step -1 .Offset(i).Resize(1).EntireRow.Insert Next i .Offset(1, 16).Resize(1, 1).EntireColumn.Insert .Offset(, 17).Resize(nr_ * 2 - 1, 16).Copy .Offset(1, 1).Resize(1, 1).Select End With .PasteSpecial Format:=1, Link:=1, DisplayAsIcon:=True, IconFileName:=False .Range(ad_).Offset(, 17).Resize(nr_ * 2 - 1, 16).Clear Application.ScreenUpdating = 1 End With End Sub
[/vba]
Выделите в первом листе диапазон и запустите это: [vba]
Код
Sub tt() With Selection shIn_ = .Parent.Index ad_ = .Address nr_ = .Rows.Count .Copy End With With Sheets(shIn_ + 1) .Select Application.ScreenUpdating = 0 With .Range(ad_) .PasteSpecial Paste:=xlPasteValues .PasteSpecial Paste:=xlPasteFormats For i = nr_ - 1 To 1 Step -1 .Offset(i).Resize(1).EntireRow.Insert Next i .Offset(1, 16).Resize(1, 1).EntireColumn.Insert .Offset(, 17).Resize(nr_ * 2 - 1, 16).Copy .Offset(1, 1).Resize(1, 1).Select End With .PasteSpecial Format:=1, Link:=1, DisplayAsIcon:=True, IconFileName:=False .Range(ad_).Offset(, 17).Resize(nr_ * 2 - 1, 16).Clear Application.ScreenUpdating = 1 End With End Sub
В книге должно быть по крайней мере 2 листа. Первый - откуда берем, второй - куда кладем. Названия произвольны Макрос вставляет новую таблицу в лист, находящийся справа от того, в котором исходная таблица
В книге должно быть по крайней мере 2 листа. Первый - откуда берем, второй - куда кладем. Названия произвольны Макрос вставляет новую таблицу в лист, находящийся справа от того, в котором исходная таблица_Boroda_