none
매크로 함수 RemoveDuplicates 오류 해결 부탁드립니다. RRS feed

  • 질문

  • 안녕하세요?

    저는 MS Excel 2007을 이용하여

    매크로 프로그램을 개발하고 있습니다.

    작업 상 RemoveDuplicates 함수를 이용하여 중복된 열을 제거하려고 하는데

    다음과 같은 오류가 생겨 일을 끝내지 못하고 있습니다.

    1. DataSheet.Range("$A$7:$AP$134").RemoveDuplicates Columns:=Array(5, 6), Header:=xlNo

    2. DataSheet.Range("$A$7:$AP$134").RemoveDuplicates Columns:=5, Header:=xlNo

    즉, 1번의 예시처럼 5, 6 Column이 동일하면 그 행을 삭제를 하고 싶은데 이 명령이 수행되지 않습니다.

    그런데 같은 조건에서 2번을 수행하였더니 이번에는 잘 돌아갑니다.

    그래서 나름대로 조사한 결과, 'Option Base 1'이 문제라는 것을 발견하였습니다.

    즉, 프로그램 맨 앞에 'Option Base 1'을 선언하면 이러한 오류가 발생하고, 없으면 정상적으로 수행된다는 것입니다.

    물론, 2번의 경우에는 'Option Base 1'에 관계없이 잘 돌아갑니다.

    결론적으로 'Option Base 1'과 'Columns:=Array(5,6)'이

    문제를 일으키는 것으로 보이는데 이에 대한 해결책이 있는지 궁금합니다.

    이 둘을 함께 사용할 수 없다면, 다른 명령어를 이용하여 해결할 수 있는 방법이 있는지도 궁금합니다.

    3월의 첫 날이자, 첫 주말입니다.

    즐겁고 행복한 하루 보내시기 바랍니다.

     

    감사합니다.

    2014년 3월 1일 토요일 오전 12:05

답변

  • Opteion base 1을 제거하고 사용하고 둘을 함께 사용하시면 될것 같습니다.

    말씀하신것 과 같이 Option base1 삭제시 Array 함수가 정상작동합니다.

    Take a look at Help for the Array function.  You want to use an argument of the form:

    Columns:=VBA.Array(1, 2)

    This will eliminate the effect of using option base 1 on the Array function, and your subroutine should work OK regardless of the Option Base setting.

    제시해 드린 답변이 도움이 되었기를 바랍니다.
     
    답변이 문제 해결에 도움이 되었다면 답변으로 채택을 부탁드립니다.
    하지만 문제 해결이 되지 않아서 정확한 답변을 원하는 경우에는 문제의 정보를 더 자세하게 답변으로 제공해주시기 바랍니다.


    2014년 3월 14일 금요일 오전 3:38
    중재자