강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của mpr1192041
mpr1192041

câu hỏi đã được viết

Hoàn thành việc làm chủ các macro Excel và VBA từ cơ bản đến sử dụng thực tế

3-2. Hoàn thành chương trình bằng cách thêm vòng lặp và điều kiện

Rows와 EntireRow

Viết

·

375

0

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

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

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

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

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

 

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

excelrowsEntireRow업무 생산성VBA

Câu trả lời 1

0

onwings님의 프로필 이미지
onwings
Người chia sẻ kiến thức

안녕하세요? 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(행 개수, 열 개수)는 이 코드 앞에서 지정한 셀 부터 행과 열 개수를 추가하여 셀 범위를 선택할 수 있는 코드입니다)

 

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

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

Hình ảnh hồ sơ của mpr1192041
mpr1192041

câu hỏi đã được viết

Đặt câu hỏi