• 카테고리

    질문 & 답변
  • 세부 분야

    업무 자동화

  • 해결 여부

    미해결

셀 병합해제 질문있습니다

21.03.31 17:18 작성 조회수 329

1

안녕하세요, 셀병학해제 강의 잘 보았습니다.

다름이 아니고 for each 문에서, 

if c.MergeArea.cells(1).address = c.address then 구문이 왜 필요한지 알수 있을까요?

위에서 if c.mergecells then 으로 한번 확인했으면

바로 set r = c.mergeArea

c.mergeArea.unMerge

r.fillDown 해도 되지않나요?

답변 1

답변을 작성해보세요.

0

if c.MergeArea.cells(1).address = c.address then
병합셀의 첫번째 셀과 c가 같은 셀이면...이라는 뜻입니다.
셀병합의 구조를 한 번 더 확인하는 코드인데
엑셀에서 '셀병합'이 되면
자동으로 병합셀의 첫번째 셀이 병합된 셀의 '값'을 가지게 되므로
말씀하신 대로 빼도 크게 무리가 없습니다.


MergeArea.Cells(1).. 이 코드는
셀 병합과 관련된 다른 문제에서 유용한 코드이므로
(병합된 셀의 개수, 병합된 셀의 값을 다른 위치에 뿌리기 등)
이해하고, 외워두시면 좋겠습니다.