[vba] [vba] [펌] Cells.Count 와 Cells.CountLarge 메서드(method)의 차이
하나를하더라도최선을
2022-10-16 16:32
2,595
0
본문
If Target.CountLarge > 1 Then Exit Sub
엑셀 2003버전 이하에서는 즉석창(Immediate Pane)에서 ? Cells.Count 라고 입력하고 엔터치면,
에러가 발생하지 않고 전체 셀의 개수를 보여주었지만, 2007버전 이상에서는 아래의 에러가 발생.
왜그런지 몰랐는데 이유를 찾았다. Count는 데이터 타입이 Long이다. Long은 4바이트로
-2,147,483,648 에서 2,147,483,647 까지의 숫자를 표시하는데 엑셀 2007 버전에서는 한 시트의 전체 셀의 개수가 무려 17,179,869,184 개이다. 그러므로 Count 로는 전체셀의 개수를 표시할 수 없다. 그래서 2007에서 새로 도입된 method가 CountLarge이다. 즉석창에서 ? Cells.CountLarge라고 입력시 아래와 같이 에러없이 전체 셀의 개수를 보여준다.
결론적으로, "일반적으로는 기존의 Count method를 사용하여도 무방하지만 2007버전 이상에서 한 시트에서 대략 2000개 이상의 열을 count할 시(또는, 10개의 시트 x 200개 이상의 열)에는 Count 대신 CountLarge 메써드를 사용해야 한다."는 것.
출처 : h t t p s : / / b l o g . n a v e r . c o m / r o s a 0 1 8 9 / 6 0 1 3 8 8 8 9 2 7 3
댓글목록0