2014-01-22 1 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.Select' 자체는 부모 시트가 활성화되어 있고 ('asdf1'이'Nothing'이 아니라 - 즉 범위로 설정되어있는 한) 작동합니다. 이 코드로 무엇을할까요? 일반적으로 다른 위치로 데이터를 복사하려는 경우에는 선택/활성화 할 필요가 없습니다. –

답변

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

오, 범위를 설정하기 전에 "example"시트를 활성화하십시오. 범위에 시트가 "atached"와 함께 제공됩니다. – user3207377

관련 문제