2014-01-22 71 views
-1

我正在嘗試一個簡單的轉置宏,我得到了這個錯誤,嘗試了幾個解決方案,但仍然擊中了一塊石頭。錯誤1004,選擇對象的方法範圍

這是代碼。

Sub pastetrasp(Zone As String) 
    Dim asdf1 As Range 
    Dim n As Integer 

    If Zone = "CF" Then 
     Set asdf1 = Range("Q1:Q4") 
     Set asdf2 = Range("P1:P4") 
     Set asdf3 = Range("O1:O4") 
     n = 1 
    End If 

    Sheets("Data").Select 
    Sheets("Data").asdf1.Select ' ERROR 
    ActiveCell.Copy 
    Sheets("example").Select 
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
     :=False, Transpose:=True 
    ActiveCell.Offset(0, -n).Select 
end sub 
+1

只是asdf1.Select表( 「數據」)不知道什麼asdf1是! –

+1

只要父表單處於活動狀態(asdf1'不是'Nothing' - 即它被設置爲一個範圍),'asdf1.Select'本身就會工作。你想要這個代碼做什麼?通常,如果您只想將數據複製到其他位置,則無需選擇/激活任何內容。 –

回答

0

ActiveCell無法引用範圍。而且你也不需要使用Select

使用asdf1.Copy複製

而對於PasteSpecial,你需要一系列先於它,但你是選擇在該行之前的紙張。

相反,你可以這樣做

Sheets("example").Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=True

+0

非常感謝,它的工作!,但它只複製矢量的第一個值,可能有錯誤的粘貼命令 – user3207377

+0

我試過使用asdf1.select,但它給了我一個錯誤。試圖printig地址和那個作品。 – user3207377

+0

哦,在調整範圍之前激活「示例」表單,就像範圍內附帶一個「atached」表單一樣 – user3207377

相關問題