|
최춘원 님이 쓰신 글 :
: 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
|