2015-07-21 1 views
0

Как скопировать диапазон, не используя select. Мне нужно все, а не только ценности. Текущий громоздкий код:Как скопировать все форматы без использования в vba

Function Template(x As Integer) 
    Sheets("Sheet1").Select 
    Sheets("Sheet1").Range("E1:H5").Select 
    Selection.Copy 
    Sheets("Sheet2").Select 
    Sheets("Sheet2").Cells(1, x).Select 
    ActiveSheet.Paste 
End Function 

Спасибо !!

+0

Были ли ответы на ваши вопросы? –

+0

Да, большое спасибо, ребята! Очень ценится :-) – Nikhen

+0

Отлично! Тогда вы должны принять один из ответов! : 0) –

ответ

1

Вы можете использовать Range.Copy (https://msdn.microsoft.com/en-us/library/office/ff837760.aspx), чтобы скопировать диапазон без выбора, происходящего, например ...

Range("A1").Copy Range("A2") 

будет копировать все, включая ценности и форматы от A1 до A2.

0
Function Template(x As Integer) 
    Dim sourceRange As Excel.Range 
    Dim destinationRange As Excel.Range 

    Set sourceRange = Sheets("Sheet1").Range("E1:H5") 
    Call sourceRange.Copy 


    Set destinationRange = Sheets("Sheet2").Cells(1, x) 
    Call destinationRange.PasteSpecial(xlPasteAll) 

End Function