[vba] [펌] Cells.Count 와 Cells.CountLarge 메서드(method)의 차이 > vb6.0/vba

본문 바로가기

vb6.0/vba

[vba] [vba] [펌] Cells.Count 와 Cells.CountLarge 메서드(method)의 차이

회원사진
하나를하더라도최선을
2022-10-16 16:32 2,377 0

본문




If Target.CountLarge > 1 Then Exit Sub



0c10c0d0f383c338144a996f6c17a753_1665905411_8744.jpg
 

엑셀 2003버전 이하에서는 즉석창(Immediate Pane)에서 ? Cells.Count 라고 입력하고 엔터치면, 

에러가 발생하지 않고 전체 셀의 개수를 보여주었지만, 2007버전 이상에서는 아래의 에러가 발생.


0c10c0d0f383c338144a996f6c17a753_1665905412_5637.jpg
 
왜그런지 몰랐는데 이유를 찾았다. Count는 데이터 타입이 Long이다. Long은 4바이트로

-2,147,483,648 에서 2,147,483,647 까지의 숫자를 표시하는데 엑셀 2007 버전에서는 한 시트의 전체 셀의 개수가 무려 17,179,869,184 개이다. 그러므로 Count 로는 전체셀의 개수를 표시할 수 없다. 그래서 2007에서 새로 도입된 method가 CountLarge이다. 즉석창에서 ? Cells.CountLarge라고 입력시 아래와 같이 에러없이 전체 셀의 개수를 보여준다.


 0c10c0d0f383c338144a996f6c17a753_1665905413_0195.jpg


 

결론적으로, "일반적으로는 기존의 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

등록된 댓글이 없습니다.
게시판 전체검색