VBA의 오른쪽 상단의 '질문을 입력하세요' 란에 입력하세요
Range 개체 구성원
Worksheet 개체 구성원
[Range 개체]
- 셀 하나
Range("A1") = Cells(1, 1) - (행번호, 열번호) = Cells(1, "A")
- 연속된 범위
Range("A1:A10") = Range("A1", "A10") - (시작셀, 끝셀)
- 정의된 이름 범위
Range("data")
지정된 범위로 영역을 잡을 경우, 셀이 이동하면 영역이 변경됨
따라서 해당열에 이름을 주워 관리하는 것이 좋음
ex) A1은 start로 H10을 end로 하면
Range("start", "end")
- 다른 워크시트의 범위
Worksheets("Sheet2").Range("A1:A10") - 워크시트의 이름이 변경되면 에러가 발생
Sheet1.Range("A1:A10") - Sheet1은 VBA의 코드 값임 (or Sheet1을 개체변수로 지정하여 사용) - 코드값은 변하지 않음
[표 범위]
표범위 전체 : Ctrl + A
Range("A1").CurrentRegion
Range("A1").CurrentRegion.Columns(3) : 3번째 열을 지정
표범위 : Ctrl + A
Range("A1", Cells(Rows.count, "A").End(xlUp)) - A1부터 A행의 마지막 데이터가 있는 위치 - .End(xlUp) - Ctrl + 위방향키
For Each문에서 입력된 데이터를 가져올 수 있음
Offset : 지정된 수만큼 이동
ex)
Dim nowWhere as Range
nowWhere = Cells(Rows.Count, "A").End(xlUp). Offset(1, 0)
with nowWhere
.offset(0, 0).Value = 값1
.offset(0, 1).Value = 값2
.offset(0, 2).Value = 값3
End with
결과)
A B C
값1 값2 값3
값1 값2 값3
값1 값2 값3
최종값에서 아래로 해당값이 계속 추가 됨 (가장 많이 사용되는 스크립트)
Resize : 지정된 수만큼 선택영역 확장
[복사]
Range("B1:B10").Copy Range("B12")
B12셀에 B1:B10을 복사해서 붙여넣어라
[찾기] - Ctrl + F
G열의 값이 '단종'인 것을 찾아서 F열의 값을 0으로 바꿔주는 예제
Sub 단종처리()
Dim G열 As Range
Dim 찾은셀 As Range
Dim 첫번째셀주소 As String
// G열이 비어있기 때문에 값이 다 들어있는 F열의 갯수를 가져옴
Set G열 = Range("G2", Cells(Rows.Count, "F").End(xlUp).Offset(,1))
// 값이 단종인 것을 찾음
Set 찾은셀 = G열.Find(What:="단종")
// 단종인 값이 없을 경우
If Not 찾은셀 Is Nothing Then
첫번째셀주소 = 찾은셀.Address
Do
찾은셀.Offset(0, -1).Value = 0
Set 찾은셀 = G열.FindNext(찾은셀)
// 첫번째 셀주소이면, 다시 처음으로 온 것이기 때문에 끝냄
Loop Until 찾은셀 Is Nothing Or 찾은셀.Address = 첫번째셀주소
End If
End Sub
[예제]
'IT 관련 > 엑셀' 카테고리의 다른 글
VBA 워크시트, 이벤트 (0) | 2013.11.22 |
---|---|
VBA 변수, 상수, For Each, 이벤트 비활성 (0) | 2013.11.21 |
VBA 코드 (주석, 프로시저 호출) (0) | 2013.11.20 |
엑셀 1일차 - 구버전과 신버전 차이, 매크로 (0) | 2013.11.20 |