작성
·
279
답변 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(행 개수, 열 개수)는 이 코드 앞에서 지정한 셀 부터 행과 열 개수를 추가하여 셀 범위를 선택할 수 있는 코드입니다)
답변이 도움이 되셨으면 좋겠습니다.
학습하시다가 또 궁금한 사항 있으시면 질문 올려주세요~