none
Excel VBA '1004' 런타임 오류 RRS feed

  • 질문

  • 안녕하세요

    엑셀을 이용해서 산정한 값을 계산하여 시트에 출력되게 하는 프로그램을 조작하다가

    '1004' 런타임 오류가 발생하였습니다.

    클립보드를 비울 수 없습니다. 다른 응용 프로그램에서 클립보드를 사용하는 중일 수 있습니다.

    하여 MSDN에서도 검색해보고 구글링도 해보았으나 별다른 방법을 못찾았습니다.

    '1004' 런타임 오류발생 대화상자가 나타나서 디버그모드로 소스내부로 들어가보니

    Sheet명.Range(Sheet명.Cells(붙힐 범위), Sheet명.Cells(복사할 이미지 범위)).CopyPicture xlScreen, xlPicture 부분에서 브레이크 되었습니다.

    근데 이게 특정 업체의 시스템에서만 에러가 발생하고 다른 시스템에선 정상 작동합니다.

    매크로 및 COM 추가 기능도 따로 없습니다. 문서보안 프로그램(DRM)도 설치되있지 않습니다.

    특정업체 시스템 사양 (Windows7 64bit, Microsoft Office 2010(VBA7.0))


    상황으로 봐선 코드상에는 이상이 없는듯한데

    어떠한 문제로 인해서 발생하는지 알고 싶으며 해결방법이나 또는 코드 대안방법을 알고 싶습니다.

    2015년 1월 9일 금요일 오전 4:45

답변

  • 늦은답변 입니다만, 참고 차원에서 남겨둡니다.

    VBA 매크로를 이용하여, 입력 데이터를 제어하는경우 가장 많이 있는 문제점 중에 하나가 바로 

    지금 이야기 하신 부분입니다.

    데이터를 복사 / 붙이기 / 검색 / 필터링 등을 하다가 주로 생기는데요.

    이 경우는 

    엑셀자체에서 해당 Sheet 오브젝트를 놓치거나, 특정할수 없어졌을 경우에도 발생합니다.

    엑셀의 갱신화면을 안보여주도록은 설정을 해 두셨을것이라 보고.. 

    ※만약 안해두셨다면, 디스플레이 갱신을 위해서 프로세스가 딜레이 되는 경우가 있을수 있으니 릴리즈때는 권장치 않습니다.

    Sheets("AA").select
    
    ActiveSheet.Range(ActiveSheet.Cells(붙힐 범위),.......


    처럼 코드를 한번 수정해보세요.

    즐거운 하루되세요.


    프로그램 개발에는 정답이 없다.

    • 답변으로 표시됨 Dev_Han 2015년 4월 24일 금요일 오전 3:20
    2015년 4월 15일 수요일 오전 7:06

모든 응답

  • 현재와 같은 경우는 사용자 환경 이슈이기 때문에 증상만으로 원인 파악이 어렵습니다.

    의심될만한 것이 없을까요?

    프로그램 문제여부, 해당 OS버전 Office 버전 지원여부, 내부적 충돌을 의심해야하기 때문에 어렵습니다.

    해당 부분에 대해서는 TEST를 많이 진행해가셔서 원인 범위를 좁혀나가야할 것 같습니다.

    도움이 되드리지 못해서 죄송합니다.

    2015년 1월 27일 화요일 오전 9:32
    중재자
  • 늦은답변 입니다만, 참고 차원에서 남겨둡니다.

    VBA 매크로를 이용하여, 입력 데이터를 제어하는경우 가장 많이 있는 문제점 중에 하나가 바로 

    지금 이야기 하신 부분입니다.

    데이터를 복사 / 붙이기 / 검색 / 필터링 등을 하다가 주로 생기는데요.

    이 경우는 

    엑셀자체에서 해당 Sheet 오브젝트를 놓치거나, 특정할수 없어졌을 경우에도 발생합니다.

    엑셀의 갱신화면을 안보여주도록은 설정을 해 두셨을것이라 보고.. 

    ※만약 안해두셨다면, 디스플레이 갱신을 위해서 프로세스가 딜레이 되는 경우가 있을수 있으니 릴리즈때는 권장치 않습니다.

    Sheets("AA").select
    
    ActiveSheet.Range(ActiveSheet.Cells(붙힐 범위),.......


    처럼 코드를 한번 수정해보세요.

    즐거운 하루되세요.


    프로그램 개발에는 정답이 없다.

    • 답변으로 표시됨 Dev_Han 2015년 4월 24일 금요일 오전 3:20
    2015년 4월 15일 수요일 오전 7:06

  • 의심이 가는 부분은

    첫번째 클립보드에 이미지를 복사하여 특정셀범위에 입력하는 부분에서 일어나는 현상입니다.

    사용자 환경 이슈문제도 있긴 한데 이 작업이 한번 클릭으로 여러개의 이미지를 복사하여 표기하게끔 하는 작업입니다.

    물론 작업 속도 및 환경여하에 따라서 메모리가 적은 시스템 메모리가 충분한 시스템에서 여러번 TEST를 해보았으며,

    클립보드를 비우는 소스도 찾아보고 삽입해 보았는데도

    같은 현상으로 원하는 범위에 이미지가 삽입되지 않으며 같은 1004 런타임 메세지가 송출되더는 것을 확인했습니다.

    두번째 꾸준한 Office 보안 업데이트로 이미지가 저장되어있는 외부 파일에서 읽어오면서 발생하는 것 같습니다.

    XP, 7, 8 여러 OS에서 TEST한 결과 확실히 구식OS에서 빈번하게 오류 현상이 일어남을 확인했습니다.

    계속해서 연구하고 TEST하여 오작동 현상을 줄여나가도록 해보아야 할 것 같습니다.

    답변 감사합니다.

    2015년 4월 24일 금요일 오전 3:20
  • 답변 감사합니다.

    위와 같은 소스로도 하였었으나, 오류가 뜨는건 역시나였습니다. ㅎ

    2015년 4월 24일 금요일 오전 3:21
  • 원하시는 방법과는 조금 다른 방안입니다만,

    1. 복사하고자하는 이미지를 복수개 선택하여 클립보드에 격납

    2. 원하는 시트의 셀범위내에 붙여넣기 

    1과 2의 작업을 Loop 처리해보면 어떨까요??

    단순히 복수개의 이미지가 아닌, 단일 이미지만으로 1을 수행 후 2를 수행. 그리고 클립보드를 클리어해주는것 까지가 

    처리가능하다면,

    위의 작업을 이미지 갯수만큼 For 로 돌려주면 되지 않을까... 싶습니다만.. 어떤가요??

    혹시나 해보신 방법이라면, 늦은 뒷북 죄송합니다.

    개인적인 생각으로는 위에도 주신 답변도 참고해보자면, 클립보드 격납문제 혹은 오브젝트 손실 등 별도의 문제가 생기지 않았을까... 사료되어집니다.


    프로그램 개발에는 정답이 없다.

    2015년 4월 28일 화요일 오전 7:30