C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[47566] Re:엑셀파일 로드시에 엑셀파일에서 셀병합한 셀들 정보가지고 올수 잇는 방법이 있나요?
[] 2959 읽음    2006-12-27 14:51
최춘원 님이 쓰신 글 :
: ole로 엑셀파일을 로드했을시에 셀병합한 셀들의 정보를 가지고 올수 있는 방법이 있나요?
: 여기저기서 조사해봣는데 잘 모르겟네요..^^;;
: 혹시 아시는 분 있으시면 조언좀 해주세요.

병합된 셀들을 모은 컬렉션 등은 없는 것 같더군요.

Worksheet 개체의 UsedRange 속성으로 각 워크시트의 사용 영역을 알아낸 다음
그 영역 내의 Cell 별로 MergeCells 속성을 검사하여 값이 True이면 해당 셀은 병합된 셀이며 해당 셀과 함께 병합된 셀들은 MergeArea 속성 또는 Address 메서드로 알아냅니다.


Sub macro1()
Dim ma As Range
Dim Sheet2 As Worksheet
Dim Sheet3 As Worksheet
Set Sheet2 = Worksheets("Sheet2")
Set Sheet3 = Worksheets("Sheet3")
Set usedrnge = Sheet2.UsedRange
Sheet3.Cells(1, 1).Value = usedrnge.Address
For r = 1 To usedrnge.Rows(usedrnge.Rows.Count).Row
For c = 1 To usedrnge.Columns(usedrnge.Columns.Count).Column
  If Sheet2.Cells(r, c).MergeCells = True Then
   Set ma = Sheet2.Cells(r, c).MergeArea
   Sheet3.Cells(r, c).Value = Chr(Asc("A") - 1 + ma.Columns.Column) & ma.Rows.Row & " ~ " & Chr(Asc("A") - 1 + ma.Columns(ma.Columns.Count).Column) & ma.Rows(ma.Rows.Count).Row
  End If
Next c
Next r
Sheet3.Activate
End Sub

+ -

관련 글 리스트
47560 엑셀파일 로드시에 엑셀파일에서 셀병합한 셀들 정보가지고 올수 잇는 방법이 있나요? 최춘원 1356 2006/12/26
47566     Re:엑셀파일 로드시에 엑셀파일에서 셀병합한 셀들 정보가지고 올수 잇는 방법이 있나요? 2959 2006/12/27
48419         Re:Re:엑셀파일 로드시에 엑셀파일에서 셀병합한 셀들 정보가지고 올수 잇는 방법이 있나요? 최춘원 1546 2007/03/15
48418         감사합니다(__) 덕분에 문제를 해결할수 있었습니다^^;;(냉무) 최춘원 964 2007/03/15
48417         감사합니다(__) 덕분에 문제를 해결할수 있었습니다^^;;(냉무) 최춘원 765 2007/03/15
48416         감사합니다(__) 덕분에 문제를 해결할수 있었습니다^^;;(냉무) 최춘원 724 2007/03/15
48415         감사합니다(__) 덕분에 문제를 해결할수 있었습니다^^;;(냉무) 최춘원 872 2007/03/15
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.