vba에서 사용할수 있는 함수가 있고, 그렇지 않는 경우 엑셀함수를 빌려써야 하는데
counta 함수에 대한 문의 입니다.
①건수 = CountA(Range("A:A")) '이것은 오류가 나서 사용할수 없구요
②건수 = Application.CountA(Range("A:A")) '사용가능
③건수 = Application.WorksheetFunction.CountA(Range("A:A")) '사용가능
위에서 사용가능한 두가지(②, ③)모두 vba에서 결과값도 동일하게 나오는걸로 알고 있습니다.
두개가 똑같다 한다면 텍스트가 적은 "건수 = Application.CountA(Range("A:A"))" 을 사용하려고 하는데 괞찬나요?
Count 함수도 동일하게 사용하려고 합니다.
첫댓글 일반적으로 worksheetfuntion 을 생략 하셔도 됩니다. 저의 경우 항상 생략했었는데.. 아직까지는 그로인한 에러를 보지 못했습니다.
그렇군요... 도움말에는 꼭 써있어서 애를 먹었는데.. 감사합니다.
Specialcells도 참고해 보삼...
고맙습니다.
원래 CountA함수의 경로는 Excel.WorksheetFunction.CountA입니다. 그런데 Application 클래스에 WorksheetFunction라는 속성은 읽기전용으로 Excel.WorksheetFunction 클래스에 연결시켜주므로 결과는 같습니다. 그런데 1번처럼 Application을 생략하면 Excel라이브러리가 아닌 Daufult인 VBA라이브러리에서 VBA 전용함수에서 찾게 되고, 매크로전용 함수중 Counta함수가 없으니 에러가 나는 것입니다.
추가로 VBA함수와 Worksheetfunction 함수중 이름이 같은 함수가 있는데 어떤 것들은 서로 약간의 차이가 있다는 것을 참고하시기 바랍니다. 예) Trim함수, Mid 함수 등
자세한 설명 감사드립니다.