2012-10-19 31 views
0

我建立一個宏長表分割成多個小商品表,我想有保存在一個變量中的頭能夠快速將其粘貼在小商品桌子上。任何方式來保存在Excel宏中的行以備將來使用?

我做了一個宏來完成的第一個(很簡單)

Sheets("Feuil1").Select 
Rows("2:2").Select 
Selection.Copy 
Sheets("PageImpression").Select 
Rows("2:2").Select 
ActiveSheet.Paste 

我怎樣才能讓我的一個變量Selection.Copy,如何貼吧,當我需要?

回答

7

答案是行存儲到一個變量。然後在需要時調用該變量。此外,無需複製/粘貼,選擇和所有:)

Option Explicit 

Dim myHeader as Variant 

myHeader = Sheets("Feuil1").Rows(2) 

Sheets("PageImpression").Rows(2) = myHeader 

更新

要與Range對象使用,請執行下列操作:

Dim myHeader As Range 

Set myHeader = Sheets(1).Rows(2) 

Sheets(2).Rows(2).Value = myHeader.Value 

更新2

的更乾淨(內存+節省時間)的方式來做到這一點竟被d是:

Option Explicit 

Dim myHeader as Variant (or Range) 

With Sheets("Feuil1") 

    myHeader = .Range(.Range("A1"),.Range("A" & .Columns.Count).End(xltoLeft).Column)) 
    'for variable type Range, add "Set =" in front of line above 

End With 

Sheets("PageImpression").Range("A2") = myHeader 
'For Range Sheets("PageImpression").Range("A2").Value = myHeader.Value 
+0

+1簡單,簡潔的答案:P –

+0

哇,這麼簡單......但是你爲什麼不使用「範圍」爲VarType函數? – Kraz

+0

@Kraz - >因爲你需要Variant(或者數組可能工作)類型來回寫範圍。你可以通過使用範圍來調整它,但是你的代碼必須更加明確。我已經編輯了我的答案,以及如何正確使用範圍。 –

相關問題