VBA – Excel 도움부탁드립니다.

  • #303698
    VBA 149.***.40.178 6191

    VBA 초보입니다.

    엑셀을 이용해서 프로그램을 만들고 있는데요.

    아래보이는 코드가 어느날 갑자기 에러메시지를 보내네요.
    어제까지는 잘되던 코드였는데 제가 뭘 잘못 건드렸는지 모르겠습니다.
    코드는 아주 간단합니다.

    Sheets(“Sheet1”).Select
    ActiveSheet.Range(“N7:N11”).Select
    Selection.Copy
    ActiveSheet.Range(“L7”).Select
    ActiveSheet.Paste

    ActiveSheet.Paste 부분에서 에러가 나며 에러메시지는

    Paste method of Worksheet class failed

    입니다.

    이 코드뿐만아니고 이 프로그램에 있는 모든 paste 와 pastespecial 명령문에서 에러가 나고 있습니다.

    제가 한가지 발견한 것은 위 코드에서 카피후 클립보드를 확인해보니 클립보드안에 카피한 것이 없어요.

    새문서 열어서 위의 코드로 해보면 실행 되거든요.
    그런데 현재 쓰고 있는 프로그램에서는 안됩니다.

    뭐가 문제 인지 고수님들의 조언 기다립니다.

    • CPM Eng. 24.***.215.86

      아래 Procedure를 엑셀에서 Alt+F11키로 VBE창을 여신 다음, Pull Down 메뉴중 Insert->Module 클릭하고, 붙여넣기 하신후 실행하시면 됩니다. 현재 활성화된 Sheet에서 복사, 붙여넣기가 가능합니다.



      Sub CopyPaste()

      With ActiveSheet
      .Range(“N7:N11”).Copy _
      Destination:=.Range(“L7”)
      End With

      End Sub

    • CPM Eng. 24.***.215.86

      Copy Method의 구문은,
      expression.Copy(Destination) 입니다. 원글님께서는
      아래부분을 빼먹어서 에러가 났던겁니다.

      ActiveSheet.Range(“N7:N11”).Select
      Selection.Copy _
      Destination:ActiveSheet.Range(“L7”)

      복사하는 영역과 붙여넣기 하는 영역이 같다면,
      With… End With로 묶어서 위에 답글 단것처럼 사용하시면 됩니다.

    • VBA 149.***.40.178

      CPM님 답글 감사합니다.

      제가 위에 적어놓은 코드도 새문서의 워크시트모듈에서 적용하면 에러가 나지 않습니다.
      일반 모듈로 오면 말씀하신대로

      with — end with 구문으로 사용하니 PasteSpecial 부분에서 에러가 나지 않네요.

      워크시트 모듈과 일반 모듈을 사용하는 것에 대한 차이점은 뭘까요…

    • CPM Eng. 24.***.215.86

      워크시트 모듈은 보통 해당 시트의 Event Procedure(시트를 활성화 할때, 비활성화 할때, 더블클릭할때, 등등)를 관리할때 사용하고 엑셀 Object중 하나죠, 일반 모듈은 그이외 목적(일반 프로시져, 사용자 정의 함수, 유저폼 이나 클래스 모듈 부르기)으로 엑셀 Object가 아닌 별개의 Script를 적는 공간이라 보시면 됩니다.

      이해가 잘 안되신다면 VBE창을 열고, 도움말 부분을 읽어보시면 됩니다.

      그냥 간단한 프로시져를 만들때는 별 상관이 없지만 Script이 길어진다면 각 용도에 맞게 사용하는 습관을 가지는게 좋겠죠.

    • Troy 129.***.163.234

      어제까지 잘되던 코드가 오늘 이상하게 작동한다는 것으로봐서, 소스코드보다 Sheet에 의심이 가는군요. 작업하시는 Sheet 이름을 “Sheet1″에서 다른 것으로 바꾸신것은 아닌지요?

    • VBA 149.***.40.178

      뜨로이님/ 여러 각도로 코드를 다시 봤는데.. 제 생각은 매크로 바이러스에 감염된게 아닌가 생각도 들고.. 아직도 잘 모르겠습니다. 위 코드말고도 여러가지 갑작스런 문제가 있었습니다. 지금은 거의 다 해결했습니다만.. 어제 좀 쉴려고 했더니. 하루를 다 날렸네요. 쩝.