VBA – 매크로를 사용하여 자동채우기
In this Article
이 튜토리얼에서는 VBA에서 자동 채우기를 사용하는 방법을 설명합니다.
VBA 자동 채우기
자동 채우기는 데이터가 반복적이거나 순차적(요일, 날짜, 월 등)인 경우 Excel에서 유용한 도구입니다. 일반적으로 처음 몇 개의 셀을 필요한 데이터로 채운 다음 자동 채우기를 사용하여 필요한 데이터를 선택한 범위로 복사합니다.
이 모든 작업은 VBA 매크로를 사용하여 수행할 수 있습니다.
증분 숫자를 사용한 자동 채우기
우선 코드에서 두 개의 Range 변수를 선언합니다.
Selection1은 자동 채울 데이터가 있는 범위입니다(예: 1과 2).
Selection2는 자동 채울 전체 범위로, 첫 번째 범위와 자동 채울 현재 비어있는 셀을 포함합니다.
변수를 선언한 다음 AutoFill 메서드를 사용하여 두 번째 선택 범위를 채웁니다.r
Public Sub MyAutoFill()
'AutomateExcel.com에서 작성한 코드입니다
'Range 변수를 선언합니다
Dim selection1 As Range
Dim selection2 As Range
'범위 변수를 각각의 범위로 정의합니다
Set selection1 = Sheet1.Range("A1:A2")
Set selection2 = Sheet1.Range("A1:A12")
'자동 채우기
selection1.AutoFill Destination:=selection2
End Sub
위 코드를 사용하여 A1:A12 범위에 자동 채우기 매크로를 실행할 수 있습니다.
AutoFill 메서드를 사용하는 경우 수행하려는 자동 채우기 유형을 선택할 수 있습니다. 위의 예에서는 자동 채우기 유형을 지정하지 않았으므로 기본 유형(이 경우 각 줄에서 숫자를 1씩 증가시키는 유형)이 사용되었습니다.
월(날짜)을 사용한 자동채우기
월을 사용하여 자동 채우는 매크로는 숫자를 증가시키는 데 사용되는 매크로와 거의 동일하지만 한 가지 중요한 차이가 있습니다.
Public Sub AutoFillMonths()
'AutomateExcel.com 에서 작성한 코드입니다
'Range 변수를 선언합니다
Dim selection1 As Range
Dim selection2 As Range
'범위 변수를 각각의 범위로 정의합니다
Set selection1 = Sheet1.Range("A1:A2")
Set selection2 = Sheet1.Range("A1:A12")
'월 자동채우기
AutoFill Destination:=selection2, Type:=xlFillMonths
End Sub
자동 채우기 유형을 입력할 때 선택할 수 있는 여러 Excel 상수가 제공됩니다. 이 상수를 선택하지 않으면 Excel이 주어진 원본 데이터에서 채울 데이터 유형을 결정합니다.
그러나 Excel은 Type 인수를 사용하지 않고도 월, 요일 및 증분 숫자와 같은 표준 계열을 선택할 수 있습니다.
xlFillCopy를 사용한 자동 채우기
자동 채우기 매크로를 사용하여 정보를 복사하려면 xlFillCopy 상수를 사용해야 합니다.
Public Sub AutoFillCopy()
Dim Selection1 As Range
Dim Selection2 As Range
Set Selection1 = Sheet1.Range("A1:A1")
Set Selection2 = Sheet1.Range("A1:A12")
Selection1.AutoFill Destination:=Selection2, Type:=xlFillCopy
End Sub
이 매크로를 실행하면 Range(“A1”)의 데이터가 “Jan”의 후속 월로 셀을 자동 채우는 대신 “A1:A12” 범위로 복사됩니다.
xlFlashFill을 사용한 자동 채우기
Excel에서 텍스트를 열로 변환해야 할 때 텍스트를 열로 변환 옵션을 사용하거나 Flash Fill 이라는 옵션을 사용할 수 있습니다. 이 옵션은 VBA에서 매우 유용합니다.
다음 데이터를 예로 들어 보겠습니다:
B2 셀에 “Tolley”라는 성을 입력한 다음 매크로를 사용하여 나머지 데이터를 FlashFill 할 수 있습니다.
Sub FlashFill()
Dim Selection1 As Range
Dim Selection2 As Range
Set Selection1 = Range("B2:B2")
Set Selection2 = Range("B2:B15")
Selection1.AutoFill Destination:=Selection2, Type:=xlFlashFill
End Sub
C, D 및 E 열에 이 작업을 반복하여 나머지 데이터를 가져올 수 있습니다.
Set Selection1 = Range("C2:C2")
Set Selection2 = Range("C2:C15")
Selection1.AutoFill Destination:=Selection2, Type:=xlFlashFill
Set Selection1 = Range("D2:D2")
Set Selection2 = Range("D2:D15")
Selection1.AutoFill Destination:=Selection2, Type:=xlFlashFill
Set Selection1 = Range("E2:E2")
Set Selection2 = Range("E2:E15")
Selection1.AutoFill Destination:=Selection2, Type:=xlFlashFill
2행의 값을 기준으로 A열의 문자열에서 일부를 가져와 각 열에 채워집니다.
간편한 VBA 코딩
온라인에서 VBA 코드를 더 이상 검색하지 않아도 됩니다. 초보자도 최소한의 코딩 지식으로 프로시저를 처음부터 코딩할 수 있습니다. 코드를 빠르게 작성하고 싶으시다면 모든 사용자를 위한 VBA 코드 작성기인 AutoMacro에 대해 자세히 알아보세요!