2012-03-28 2 views
2

한 시트에서 다른 시트로 열을 복사하려고합니다. 내가 사용하고있는 코드는 기록 된 매크로이며 단추에 연결하기 전에는 잘 작동합니다. 그럴 때, "Run Time Error '1004': Range 클래스의 Select 메소드가 실패했습니다."런타임 오류 '1004': 범위 클래스의 메서드 선택 실패 VBA 2003

여기 코드가 있는데 아무 것도 볼 수 없습니다. 디버그를 누르면 두 번째 줄이 강조 표시됩니다.

Sheets("Count").Select 
Columns("C:C").Select 
Selection.Copy 
Sheets("Add Invintory").Select 
Range("b1").Select 
ActiveSheet.Paste 
Sheets("Count").Select 
Sheets("Count").Columns("A:A").Select 
Columns("A:A").Select 
Selection.Copy 
Sheets("Add Invintory").Select 
Range("A1").Select 
ActiveSheet.Paste 

나는 문제가 무엇인지 단서가 없다. 당신은 항상 오류 :

당신이하려고의 주요 원인 .Select을 사용하지 않아야합니다

답변

8

도와주세요?

Sub Sample() 
    Sheets("Count").Columns("C:C").Copy _ 
    Sheets("Add Invintory").Columns("B:B") 

    Sheets("Count").Columns("A:A").Copy _ 
    Sheets("Add Invintory").Columns("A:A") 
End Sub 
+1

+1 피하기 위해 조언. 선택하십시오. –

+0

이것은 완벽한 감사했습니다. –

3

다른 시트의 코드 모듈에 코드를 작성했다고 생각합니다. 내가 Sheet1에 있고 예를 들면.

... Excel은 현재 시트를 기본값으로 처리하므로 Sheet1의 열을 참조한다고 가정합니다. 따라서 Excel에서 "시트 2 선택"을 선택한 다음 "시트 1의 열 선택"이라고 말하면 오류 메시지가 나타납니다. 최선의 해결책은 '선택'을 사용하지 않는 것입니다 ...하지만 시트 주소를 명시 적으로 참조해야한다는 Siddharth의 코드를 계속 볼 수 있습니다.

ThisWorkbook 모듈에 배치하면 원래 코드가 작동했을 것입니다. 당신은 "보기 시트 코드"로 VBA 코드를 넣는 경우 코드를 입력하는 위치이 Excel help video

+0

고맙습니다. 나는 그것을 더 잘 이해한다는 것을 느낀다. –

0

의 끝 부분에 설명되어 있습니다 .. 확실히

.. 매크로 실행 ... Application.Run을 사용하는이 도움이

나는 시트 코드에 매크로를 직접 입력하는 문제가있다. 다른 시트에서 선택하면 런타임 오류 1004가 발생했다. 그래서 매크로를 별도로 만든 다음 Application.Run을 시트 코드에서 내 매크로에 넣는다.

완벽 밖으로 작동)

이 Application.Run은 또한 제 엑셀 너무 큰 매크로가있을 때 그렇게 크지 못할 수 있습니다. 여러 부분으로 나누고 응용 프로그램을 하나씩 실행할 수 있습니다.;)