错误1004,选择对象范围的方法

时间:2014-01-22 21:36:37

标签: vba excel-vba excel

我正在尝试一个简单的转置宏,我遇到了这个错误,尝试了几个解决方案,但仍然遇到了问题。

这是代码。

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 个答案:

答案 0 :(得分:0)

ActiveCell无法引用范围。而且您也不需要使用Select

使用asdf1.Copy复制

对于PasteSpecial,您需要在其前面加上一个范围,但是您要在该行之前选择一个工作表。

相反,您可以执行类似

的操作

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