2014-08-31 9 views
0

У меня есть следующие коды для создания листов и переименования их из определенного списка на листе мастера Мне нужна помощь, чтобы добавить код для копирования некоторых ячеек с другого листа (pay slip), чтобы быть вредителем в каждом из этих новых листовExcel VBA: код для копирования ячеек с листа на новый

Sub CreateSheetsFromAList() 
    Dim MyCell As Range, MyRange As Range 
    Set MyRange = Sheets("MASTER").Range("E9:E27") 
    Set MyRange = Range(MyRange, MyRange.End(xlDown)) 

    For Each MyCell In MyRange 
     Sheets.Add After:=Sheets(Sheets.Count) 'creates a new worksheet 
     Sheets(Sheets.Count).Name = MyCell.Value ' renames the new worksheet 

    Next MyCell 
End Sub 

ответ

0

Какие камеры с надписью "Pay Slip" следует скопировать? Например, предположим, что вы хотите скопировать ячейку (1,1) & сот (2,1) из «Pay Slip» для копирования в новую ячейку.

Измените код, как описано ниже.

For Each MyCell In MyRange 
    Sheets.Add After:=Sheets(Sheets.Count) 'creates a new worksheet 
    Sheets(Sheets.Count).Name = MyCell.Value ' renames the new worksheet 

    ''''Include the Copy steps from PaySlip sheet below this 
    Sheets(Sheets.Count).cells(1,1) = Sheets("Pay Slip").cells(1,1) 
    Sheets(Sheets.Count).cells(2,1) = Sheets("Pay Slip").cells(2,1) 

Next MyCell 
+0

Привет, эта копия листа с оплатой проезда, но мне пришлось сменить ее на ... (Листы (Таблицы.Констант) .range («A3: L33») = Таблицы («Платный промах»). Диапазон («A3: L33 ").) Но мне тоже понадобится формула и форматирование , которого нет –

+0

В этом случае используйте приведенный ниже код для копирования данных, формулы и форматирования. «Листы (« Pay Slip »). Диапазон (« A3: L33 »). Копирование Листы (листы. Состав) .Размер (« A3 »). Пастельная спецификация: = xlPasteFormulasAndNumberFormats, Operation: = _ xlNone, SkipBlanks: = False, Transpose: = False Листы (листы.) .Range («A3»). PasteSpecial Paste: = xlPasteFormats, Operation: = xlNone, _ SkipBlanks: = False, Transpose: = False Диапазон ("A4").Выбрать' – Kumarapush

0

Вы можете использовать .Copy & .PasteSpecial метод Range-объект .. Вот простой пример -

Sub copySomeRange(r As Range, target As Range) 
r.Copy 
target.PasteSpecial Paste:=xlPasteAll 
End Sub 

Sub callMeExample() 
Call copySomeRange(Range("A1:A5"), Range("B1")) 
End Sub 

Первый Sub() делает копирование так U можно использовать ту часть из код как есть. Просто добавьте свою логику в то, что нужно копировать.