inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

엑셀 매크로와 VBA 기초부터 실무활용까지 완전 정복

3-2. 반복문과 조건부 추가하여 프로그램 완성하기

Rows와 EntireRow

399

mpr119

작성한 질문수 2

0

2-2 고객사 실습 중 코드에서

필요없는 코드를 지우는 연습하는 중에

ActiveCell.Offset(-2, 0).Rows("1:3").EntireRow.Select

EntireRow를 지워도 되지 않을까 해서 지웠더니, 기존과 다르게 동작합니다.

이전 강의에서 Rows("1:3")과 EntireRow는 동일한 것으로 배웠는데, 이부분에서는 어떠한 차이점이 있는지 잘 이해가 되지 않습니다.

 

답변 주시면 감사하겠습니다.

excel rows EntireRow 업무 생산성 VBA

답변 1

0

엑셀여신

안녕하세요? mpr119님

ActiveCell.Offset(-2, 0).Rows("1:3").EntireRow.Select
이 문장에서 EntireRow를 지우면 행 전체를 삭제하지 않고 셀을 3개만 삭제합니다.

Rows("1:3") 코드가 맨 앞에 나오는 경우와 중간에 나오는 경우는 해석이 달라지기 때문입니다.

 

- Rows("1:3").Select  : 1행~3행 전체 선택

- ActiveCell.Offset(-2, 0).Rows("1:3").Select : 현재 셀에서 위쪽으로 2칸 이동한 셀부터 아래쪽으로 3개의 셀 선택
  (행 전체를 선택하지 않고 셀 단위로 3개만 선택합니다)

- ActiveCell.Offset(-2, 0).Rows("1:3").EntireRow.Select : 현재 셀에서 위쪽으로 2칸 이동한 셀부터 3개의 셀의 행 전체 선택
  (EntireRow 속성에 의해 행 전체가 3개 선택됩니다)

 

자동매크로로 기록되는 코드는 모든 VBA 코드를 사용하지 않고 정해진 일부 코드만 사용하게 됩니다.
그래서 Rows("1:3")를 중간에 사용하여 셀 3개를 지칭하게 되는데 이 코드가 사용자를 조금 헷갈리게 하는 편입니다.

그래서 실제 코딩할 때는 Rows("1:3")로 셀 3개를 지정하지 않고, Resize(3,1)으로 사용하는 편입니다.
ActiveCell.Offset(-2, 0).Resize(3,1).EntireRow.Select
(Resize(행 개수, 열 개수)는 이 코드 앞에서 지정한 셀 부터 행과 열 개수를 추가하여 셀 범위를 선택할 수 있는 코드입니다)

 

답변이 도움이 되셨으면 좋겠습니다.

학습하시다가 또 궁금한 사항 있으시면 질문 올려주세요~

강의자료 다운로드 문제

0

246

1

강의자료 깨짐

0

273

3

개체컬렉션 질문입니다!

0

564

2

VBA 질문

0

550

1

VBA 관련 질문드립니다.

0

286

1

실습파일 - Active X / 읽기 전용으로 열기 해제 방법

0

522

1

파일취합 변수

0

272

1

분명 강의와 똑같이 적었는데 오류가 뜨네요 무슨 문제일까요..?

0

304

1

매크로동작오류

0

386

2

매크로 원상복귀

0

619

1

실습파일 받는 방법 문의

0

367

1

VBA Solver 초기값에서 최적해 관련 파라미터 업데이트 안됨

0

494

1

개체메서드

0

304

2

thisworkbook.path

0

614

1

서식자동화 메크로 만들때

0

428

2

수업자료 이름이 깨지는 것과 매크로 실행 안됨

0

609

2

사업부 행번호 자동입력

0

421

1

강의파일 실행문제

0

301

1

셀에 있는 문자를 소리(스피커)로 듣기?

0

696

2

반복문의 변수

1

276

1

실행이 되지 않는데 어떤부분이 잘못되었는지 알려주시면 감사드리겠습니다!

0

198

1

파일시트 취합하기 문의

0

445

2

2강 (행 숨기기) 매크로

0

328

1

취합 및 반복 프로시져

0

277

1