Range, Cell : 데이터 입력하기, 지우기

2024. 11. 11. 19:51

 

 

Range의 구조

 

-  Range란 ? 
: 워크시트 오브젝트의 하위 오브젝트, 한 개 이상의 셀들로 구성된다. 
  엑셀 데이터는 행 (가로, 숫자, Rows) x 열 (세로, 알파벳, Columns) 로 이루어져 있다. 

코드를 작성하다보면 워크시트에 몇개의 셀이 있는지를 알아볼 필요가 있다. 
예를들면 셀의 데이터가 있는 수 만큼 그래프를 그린다고 했을 때, 행과 열의 수를 카운팅하는 매서드를 이용할 수 있다. 

    lngRow = ActiveSheet.Rows.Count        ' 시트의 행 수를 카운팅하여 lngRow 변수에 저장
    intColumn = ActiveSheet.Columns.Count  ' 시트의 열 수를 카운팅하여 intColumn 변수에 저장
    lngCell = lngRow * intColumn           ' 행 수와 열 수를 곱한 결과값을 lngCell 변수에 저장

이 때, lngRow와 intColumn은 정수 integer나 더 긴 정수를 표현할 수 있는 long으로 선언하면 된다. 

 

 

- Range에 데이터 입력하기
셀에 데이터를 입력하는 방법은 크게 4가지가 있다. 

 

1) 직접 입력하기

ⓐ Range ("열행").Value="입력할내용"

Sub Greeting()

Range("C3").Value="Hello"

End Sub

 

ⓑ Cells(행,열) = "입력할내용"

Sub Greeting()

Cells(2,7) = "Hello"

End Sub

 

 

2) 변수에 데이터를 미리 할당한 뒤에 입력하기

Sub Greeting()

Dim gre As String
gre = "Hello"


Range("b2").Value = gre

End Sub

 

 

3) 루프를 통해 입력하기 : 반복문 for, n to n

ⓐ D1에서 D10까지 1부터 10까지 증가하는 숫자를 입력

Sub Greeting()

'D1부터 D10까지의 셀에 1부터 10까지의 숫자 입력

Dim i As Integer

For i = 1 To 10
    Range("D" & i).Value = i
Next i

End Sub

i가 1에서 10이 될 때 까지 "D"&i (=Di)셀에 i를 입력하기를 반복한다. 

 

ⓑ E1에서 E10까지 10부터 1까지 감소하는 숫자를 입력 : Step -n

Sub Greeting()

'E1부터 E10까지의 셀에 10부터 1까지의 숫자를 내림차순으로 입력

Dim i As Integer

For i = 10 To 1 Step -1
    Range("E" & 11 - i).Value = i
    '11-i는 E1부터 E10까지의 행을 지정하는 역할.
    'i가 10으로 시작, E1=10 / E2=9 ... 
Next i

End Sub

 

4) 범위에 입력하기

Sub Fruits()
    Dim myArray As Variant
    myArray = Array("사과", "체리", "딸기")
    Range("F2:F4").Value = Application.Transpose(myArray)
    
End Sub

myArray라는 배열을 만들고, 배열의 데이터를 집어넣을 범위를 Range에 지정해준다.
Range("시작위치:끝위치").Value = Application.Transpose(myArray)

여기서 Application.Transpose(myArray)는 1차원배열 (그저 데이터의 리스트)를 2차원배열 (행과 열이 있는 배열)로 바꿔주는 매서드로 사과,체리,딸기라는 리스트의 값들을 F열의 2행부터 F열의 4행까지 하나씩 입력해주는 역할을 한다. 

 

- 데이터 지우기 : Clear(내용&서식), ClearContents(내용),ClearFormats(서식)

Sub RemoveRange()

Worksheets("Sheet1").Range("A1").Select
Range("A1").CurrentRegion.Select

Selection.ClearContents
With Range("A1:G10")
.Select
.Value = ""
End With

End Sub

1) 워크시트("시트명").Range("시작셀").Select
 시트명 워크시트의 시작셀 A1을 선택한다

2) Range("시작셀").CurrentRegion.Select 
 시작셀의 주변 연속된 데이터 범위를 선택한다.

3) Selection.ClearContens 
 선택한 범위의 내용과 서식을 모두 지운다

4) With Range("지울:범위")
    .Select
    .Value = ""
  End With
  범위를 선택하고 지운다

 

 

참고 : 

http://www.iexceller.com/MyXls/VBA_Beginner/VBA_Beginner5.asp