728x90
여는 글
VBA로 자동화된 서식을 만들 때, 셀, 그리고 인접한 부분을 선택하는 기능을 숨쉬듯이 사용하게 됩니다.
특히 Cells(Rows.Count, "A").end(xlUp)은 유난히 많이 쓰이는 것 같네요.
적은건 몇개 없지만, 적혀있는 모든 내용들이 필수암기 내용들입니다.
편하려고 찾다보면 자연스럽게 외워지긴 할거에요.
엑셀 VBA 기본기능 정리 - 선택하기/범위조작(1)
- 특정 셀 선택
- Range("a1").Select
- Cells(1, "az").Select – 일반적인 사용
- Cells(Foo, "az").Select – 변수활용. For문과 상성이 좋다.
- Cells(1, 1).Select – 숫자만 사용
- 열의 번호는 직접 실행창(Ctrl+G)에서 ?range("AZ1".Column)으로 검색
- Cells 개체는 인텔리센스가 작동되지 않음. 변수로 받으면 작동가능
- 표의 끝 셀 선택 : End
- Range("a1").End(상하좌우*).Select
- 옵션지정 : xlUp, xlDown, xlToLeft, xlToRight로 지정
- 한계 : 중간에 빈 칸이 있는 경우에는 빈칸 앞에서 멈추는 문제가 있음
- Cells(Rows.Count, "b").End(xlUp).Select
- 시트의 가장 마지막 셀로 이동한 후, 끝에서부터 처음 나오는 값을 선택함
- End(방향)을 조절하되, 사용자 기준에서는 반대의 방향을 입력함에 주의가 필요하고, 앞쪽도 Cells(Rows.Count, 숫자) / Cells(숫자, Column.count)의 형태로 변형 필요
- 전체 행/열 선택 : Row / EntireRow
- 단순 전체행/열 선택
- Column(행번호).Select
- Column("행 알파벳").Select
- Rows(열번호).Select
- 특정 셀을 참조하여 선택
- Range("기준셀").EntireColumn.Select
- Row("기준셀").EntireRow.Select
- 범위의 형태로 선택
Dim rng As Range
Set rng = Range("특정셀1 : 특정셀2") - 오프셋 부여
- 기본형 - Range("a1").Offset(1, 1).Select* Offset의 인수는 상하좌우로 이동하기 위하여 음수/양수를 사용가능함
- 활용형 - Cells(Rows.Count, "c").End(xlUp).Offset(1, 0)
- 예시
Public Sub usingOffset()
Dim c As Range '범위 변수 c 선언
For Each c In Range("c1:c10") '반복문에 의해 c값은 C1~C10 순회
If c >= 50 Then '순회 중, 셀값이 50을 넘는 경우
Cells(Rows.Count, "f").End(xlUp).Offset(1, 0) = c
End If 'f열의 상단에서부터 1칸씩 내려가며 값을 누적시킨다.
Next
End Sub
반응형
'컴퓨터 & 코딩 공부 > 엑셀 & VBA' 카테고리의 다른 글
엑셀 VBA 기본기능 정리 - 정규표현식 활용 (0) | 2023.07.04 |
---|---|
엑셀 VBA 기본기능 정리 - 선택하기/범위조작(2) (0) | 2023.07.03 |
엑셀 VBA 기본기능 정리 - VBA 함수, 워크시트함수, 메서드 불러오기 (0) | 2023.07.03 |
엑셀 VBA 기본기능 정리 - 변수·자료형·배열·컬렉션 선언 / 반복문 (0) | 2023.07.02 |
엑셀 VBA 기본기능 정리 - 자료&파일경로 입력받기(입력창띄우기) (0) | 2023.07.01 |