2012-11-10 110 views
1

我在做什麼錯我的代碼在下面?我試圖命名一系列在Excel中突出顯示的數據,並且能夠在VBA代碼中調用它並粘貼它,將它轉置等等,但它一直給我一個錯誤。在VBA中調用範圍

Sub routine() 

Dim rng As Range 
Set rng = ActiveCell.CurrentRegion 

Cells(10, "D").Select 
rng.PasteSpecial 

End Sub 

我還注意到,當鍵入「ActiveCell」。並擊中空間我得到一個選項下拉。然而,當我輸入「Cells(1,1)」時,情況並非如此。和空間。這是爲什麼?謝謝你們的幫助!

+0

您沒有先複製粘貼? – Ahmad

+0

您的錯誤「剪貼板上的數據大小和形狀不一樣」? – brettdj

+0

從您的示例數據中,一個簡單的'ActiveCell.CurrentRegion.Copy單元格(10,「D」)'將進行復制和粘貼。 「轉置」就像艾哈邁德的代碼樣本 – brettdj

回答

1

編輯:看完評論後: 這是一個更簡單的方法來複制一系列單元格,然後將特殊(值)粘貼到其他位置。我獲得了這個代碼,我完全記錄了一個宏。

Sub Macro1() 
    Range("A1:C3").Select 
    Selection.Copy 
    Cells(10,"D").Select 
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
     :=False, Transpose:=False 
    Application.CutCopyMode = False 
End Sub 

如果您打算複製到任何activecell是D10的範圍,然後點擊更改

Cells(10, "D").Select 

Cells(10, "D").copy 

你還需要指定你想要什麼特殊粘貼(值?格式?) 因此,您的完整代碼應該像

Sub routine() 

    Dim rng As Range 
    Set rng = ActiveCell.CurrentRegion 

    Cells(10, "D").Copy 
    rng.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
    :=False, Transpose:=False 'This will only paste values 

    Application.CutCopyMode = False 
End Sub 
+0

嗨艾哈邁德,非常感謝你的幫助。但代碼不起作用。在定義這個數據塊是範圍之後,我想去另一個單元格並粘貼到那裏。 – gabriel

+0

請正確告訴我你想要完成的事情。你想拷貝什麼,你想要粘貼到哪裏,你想只粘貼值/格式還是其他? – Ahmad

+0

嗨艾哈邁德,是的,所以我想要選擇範圍指定的數據,比如說Range(「A1:C3」),將它命名爲rng,然後轉到單元格(5,「F」)並粘貼整個塊的值。希望我更清楚一點。感謝您的耐心等待! – gabriel