1. FAQ
  2. 엑셀(Excel)
  3. AfterEffects
  4. Premiere
  5. Photoshop
  6. ETC

이 게시판은 아별닷컴 회원만 질문을 올릴 수 있습니다. 회원에게 주어지는 특권인셈이지요. 회원이 아닌 분들은 열람만 가능합니다.

병합효과

VBA 조회 수 6029 추천 수 0 2012.11.22 16:36:18

안녕하세요.

vba 코딩 중 막히는 부분이 있어서 이렇게 글을 올립니다.

바쁘지 않으시면 도움 좀 청해도 될런지요?

첨부된 예제의 "원본" 워크시트의 색깔이 입혀진 부분은 셀이 병합되어 있습니다.

(특히 하늘색 부분은 불필요하게 2행까지 병합된 것이죠. 예제라 A1:M2가 병합되었지만,

실제는 A1:M3, A1:M4 등이 병합되었을 수 있고, 다른 양식일 경우 B10:K15 등이 병합되는 등 특정할 수 없습니다.)

매크로를 실행하면 "실행후" 워크시트처럼 셀 병합을 해제하고 셀 병합과 같은 효과입니다.

그런데, "실행후" 워크시트의 3~5행을 보면 행의 높이가 "원본" 워크시트에 비해 바뀐 것을 알 수 있습니다.

매크로를 실행해도 행의 높이가 바뀌지 않게 하는 방법이 있을까요?

(코드 중 .Offset(1, 0).Resize(irow - 1, iColumn).Delete shift:=xlUp부분을

.Offset(1, 0).Resize(irow - 1, iColumn).EntireRow.Delete로 수정하면 행 높이가 변하지 않는데요.이럴경우 N2:P2의 데이타가 지워져서요...)


댓글 '3'

profile

[레벨:30]아별

2012.11.26 11:19:06
*.104.126.21



고수가되고파님..

 

음.. 행을 지우면 그 만큼 전체적으로 위로 올라가겠죠..

 

아래 코드로 대체한다고 하더라도.. 행은 삭제되기 때문에 전체적으로 올라가는데요?

.Offset(1, 0).Resize(irow - 1, iColumn).EntireRow.Delete

 

암튼..

해당 행을 지우기 전에 남아 있을 행의 행높이를 지워질 행높이를 포함하는 크기로 조절한 다음 행을 삭제하면 될 것 같은데요..

 

코드 중에서 아래의 굵게 표시한 코드 한줄을 추가해보세요..

정확히 일치하지는 않지만.. 대충 비슷해집니다.

 

첨부파일을 참고하세요..

다운받기 : 예제(병합효과)-2.xlsm

 

                  End If
                  .MergeCells = False '셀병합 해제
                  .Resize(1, iColumn).HorizontalAlignment = xlCenterAcrossSelection '선택영역의 가운데로
                  .RowHeight = .RowHeight + .Offset(1, 0).RowHeight
                  .Offset(1, 0).Resize(irow - 1, iColumn).Delete shift:=xlUp
                  iCount = iCount + 1
              End If
          End With

 

 

 

첨부

[레벨:4]고수가되고파

2012.11.27 13:29:43
*.104.208.234

감사합니다. rowheight라는 속성도 있었네요...

저두 이 문제에 대해서 계속 생각하고 있는데요.

가령,  .Offset(1, 0).Resize(irow - 1, iColumn).EntireRow.Delete 코드를 사용하기 전에

삭제될 부분의 내용이 있는 데이타만 복사를 하는겁니다.

그리고 .Offset(1, 0).Resize(irow - 1, iColumn).EntireRow.Delete  후에 복사된 것을 붙여넣기 하는거죠.

이걸 구현했는데 자꾸 오류가 나네요.. 이런 방법으로 하면 해결되지 않는지요?

profile

[레벨:30]아별

2012.11.27 14:25:27
*.104.126.21

고수가되고파님..

단순히 .Copy만 하시면 안됩니다.

 

Copy한 상태에서 Delete를 하시면.. 클립보드에 복사했던 내용이 없어져 버립니다.

Application.CutCopyMode가 False 상태가 되어 버리는거지요..

 

복사해서 변수에 값을 집어넣었다가 삭제 한 후에 붙여넣으시던가..

별도의 빈 시트에 해당 영역의 값을 복사해서 붙여놨다가..

행을 삭제 후에 별도로 복사했던 값을 복사해서 붙여넣는 방법으로 하셔야할 겁니다.

 

도움이 되셨기를..

 

문서 첨부 제한 : 0Byte/ 2.00MB
파일 제한 크기 : 2.00MB (허용 확장자 : *.*)
List of Articles
번호 제목 글쓴이 날짜 조회 수sort
공지 공지 [공지] 아별닷컴의 엑셀 질문방 폐쇄합니다. 카페 질문방 이용하세요.. imagefile [레벨:30]아별 2015-04-23 43747
821 엑셀일반 엑셀파일 비밀번호 단체 설정 가능한가요? [30] [레벨:4]쟈니 2012-06-18 54247
820 엑셀일반 회원만 질문을 올릴 수 있습니다. [레벨:30]아별 2010-09-21 33306
819 기타 [필독] 질문시.. 엑셀 파일 첨부, 윈도우버전과 엑셀버전 표기, 답변 받으면 피드백 댓글 꼭 달기.. [레벨:30]아별 2011-08-11 26846
818 엑셀일반 행높이 최대치 조절 가능할까요? _ Excel 사양 및 제한 [3] [레벨:6]파이스 2012-06-01 14928
817 엑셀 웹커리에서 URL 바꾸기 매크로 질문 [1] [레벨:1]밥사마 2009-09-01 13460
816 엑셀- sumif와 sumcol 혼용사용에 대해서 (급해요) [1] 아놔 2009-07-31 13025
815 엑셀일반 엑셀에서 사진 고정하는 방법 없을까요? [3] [레벨:3]빛의행운아 2012-07-30 12705
814 제가 해외 사우디에서 파일을 받았는데 글씨가 계속 깨짐니다. file [1] [레벨:0]홍콩중국홍콩 2010-05-10 10970
813 엑셀수식 3차 방정식 풀기. [1] [레벨:3]rynoel 2012-06-13 10946
812 또 다시 질문이 있어서 왔습니다. (일자별 관리시트에서 이전 시트 값(전일 잔액 등) 자동 불러오기) file [1] [레벨:3]harcz 2010-05-22 10928
811 엑셀에서 지수값 계산하기 [1] [레벨:2]양다원 2009-07-21 10501
810 셀색깔별로 합계를 내고 싶습니다. file [1] [레벨:1]지민 2010-04-09 10480
809 엑셀에서 복사할 때 행 및 열넓이까지 그대로 복사하는 방법 [7] [레벨:2]만쥬 2010-12-07 10254
808 VBA 엑셀 열 추가 _ 엑셀의 마지막 셀 재 인식시키는 팁 ActiveSheet.UsedRange.Select imagefile [1] [레벨:5]눈물바다 2009-08-27 10175
807 엑셀일반 셀 안에 삽입된 이미지의 정가운데(가로+세로)정렬 방법이 궁금합니다. [6] [레벨:6]파이스 2011-10-11 10140
806 엑셀 주식형 차트 2009-08-17 10006
805 엑셀에서 특정데이터 불러오기 [1] [레벨:1]쒸뱅이 2009-07-17 9956
804 피벗테이블 피벗테이블에서 (비어있음)을 보이지 않게 할 수 있나요? file [레벨:1]농구경제박사 2016-02-25 9932
803 두 자료를 비교하여 같은 값을 다른 시트에... file [1] [레벨:1]프로도 2010-05-11 9797