VBA 과거 값 복사
이 자습서에서는 VBA를 사용하여 Excel의 동일한 시트 또는 다른 시트 내에서 한 열의 값을 다른 열로 복사하는 방법을 보여줍니다.
Excel의 매크로
VBA로 작성된 매크로를 사용하여 반복되는 Excel 작업이 더 쉬워졌습니다. 특정 작업을 수행하기 위해 매크로를 작성할 수 있으며 사용자는 필요할 때마다 매크로를 실행할 수 있습니다.
복잡한 일을 여러 번 반복해서 더 쉽게 할 수 있습니다. 매크로는 한 번 코딩해야 하며 무한히 사용할 수 있습니다. 유용성을 향상시키는 방식으로 매크로를 작성해야 한다는 점을 기억하십시오.
매크로에서 값을 하드코딩하지 마십시오. 사용성을 향상시키기 위해 사용자로부터 입력을 받는 데 이상적입니다.
Excel에서 한 열의 값을 다른 열로 복사할 수 있는 VBA 문을 찾고 있다면 매크로의 정의와 사용법을 알고 있어야 합니다.
Microsoft Excel의 매크로는 원하는 작업을 반복적으로 자동화하는 탁월한 기능입니다. 즉, 매크로는 사용자가 자주 실행하기 위해 기록하는 작업 또는 일련의 활동입니다.
매크로의 Microsoft Excel 작업
Microsoft Excel에서 두 가지 방법으로 매크로를 작성할 수 있습니다. 두 방법 모두 사용자 타당성을 보장하도록 설계되었습니다. 다음은 Microsoft Excel에서 매크로로 작업하는 두 가지 방법입니다.
방법 1: 매크로 기록
매크로의 도움으로 작업을 반복적으로 수행하는 가장 쉬운 방법은 매크로를 만들고 기록하는 것입니다. 마우스 클릭과 키 입력만으로 이 모든 작업을 수행할 수 있습니다.
매크로를 기록하는 단계는 매우 간단합니다. 아래에 언급된 지침을 따르십시오.
- Microsoft Excel에서
보기
탭을 엽니다.매크로
에 대한 옵션을 표시해야 합니다.매크로
옵션을 클릭하면 이미 기록된 다른 매크로를 볼 수 있는 옵션이 제공됩니다. 또한 새 매크로를 기록할 수도 있습니다. 매크로 기록
옵션을 클릭하면 창이 나타납니다.- 매크로 이름을 지정하고 설명하십시오. 특정 매크로에 대한 바로 가기를 만들 수 있습니다. 예를 들어 단축키를 Ctrl + w로 설정하면 이 단축키가 호출될 때마다 자동으로 매크로가 실행됩니다. 물론 이것은 선택 사항이지만 모범 사례로 권장됩니다.
- 특정 매크로 내에서 반복하려는 모든 키 입력 및 마우스 클릭을 기록하고 작업을 완료하는 즉시 매크로 기록을 중지합니다.
보기
탭에서 매크로를 실행하거나 이전에 정의한 바로 가기를 사용할 때마다 매크로에 기록된 동일한 작업을 수행합니다.
절대 참조 또는 상대 참조로 매크로 기록
기본적으로 매크로는 절대 주소로 기록됩니다. 따라서 columnA
에서 columnC
로 값을 복사하면 기록된 매크로는 항상 동일한 작업을 수행합니다.
상대 참조와 함께 매크로를 기록하면 선택한 셀에 상대적으로 작동합니다. 예를 들어 매크로는 열 A
에서 열 C
로 값 복사를 기록합니다.
매크로를 실행하기 위해 column W
를 선택하면 column W
에서 값을 복사하여 column Y
에 붙여넣습니다. 다시 말하지만 요구 사항에 따라 절대 또는 상대 주소 지정을 사용하는 것을 잊지 마십시오.
접근법 2: 매크로 작성
사용자의 입력이 필요하거나 사용자에게 출력을 제공하는 것과 같은 특정 작업을 수행하려면 이러한 매크로를 기록해야 합니다.
매크로를 기록한다고 해서 특정 작업을 수행하거나 일반화할 수 있는 것은 아닙니다. 따라서 Microsoft Excel에서 VBA를 사용하여 필요에 맞게 매크로를 작성할 수 있습니다.
매크로 작성 지침은 매우 간단합니다. 다음 단계는 매크로 작성 절차를 정의합니다.
-
Microsoft Excel의
개발자
탭에서매크로
버튼을 선택합니다. -
이 옵션은 모든 VBA 서브루틴 또는 매크로에 액세스할 수 있는 매크로 대화 상자를 엽니다.
-
Visual Basic
버튼을 클릭하여 Visual Basic 편집기를 엽니다. -
이 편집기 내에서 매크로 코드를 작성하고, 편집하고, 테스트하고, 실행할 수 있습니다. 매크로를 작성하는 동안에는 절대 주소와 상대 주소를 선택할 수 있는 옵션이 없다는 점을 기억하십시오.
VBA 코드가 특정 값으로 하드 코딩된 경우 절대 참조에 따라 실행됩니다. VBA 코드가 일반적으로 작성되면 상대 참조에 따라 실행됩니다.
VBA 복사 붙여넣기 값 데모
한 열에서 값을 복사하여 동일하거나 다른 시트에 있는 다른 열에 붙여 넣으려는 경우 간단하고 쉬운 VBA 코드를 사용할 수 있습니다.
이 문서는 절대 참조 및 상대 참조를 사용하여 한 열에서 다른 열로 값을 복사하여 붙여넣는 작업을 수행하는 서브루틴을 공유합니다.
사용자 자신이 주요 기능을 작성할 수 있고 값 복사-붙여넣기 작업을 수행하기 위해 문서에 언급된 서브루틴을 포함할 수 있습니다.
아래에 세 가지 솔루션이 언급되었습니다.
솔루션 1: Sheet1
의 Column1
에서 Sheet2
의 Column2
로 값 복사
예제 코드:
Public Sub CopyPasteValues()
Sheets("Sheet1").Columns(1).Copy
Sheets("Sheet2").Columns(2).PasteSpecial xlPasteValues
End Sub
위의 코드는 Sheet1
에서 Column1
을 선택하고 복사하는 CopyPasteValues()
서브루틴을 생성합니다. 그런 다음 Sheet2
에서 Column2
를 선택하고 복사한 값을 붙여 넣습니다. xlPasteValues
속성은 셀의 값을 복사하는 데만 사용됩니다.
솔루션 2: Sheet1
의 ColumnA
에서 Sheet2
의 ColumnB
로 값 복사
예제 코드:
Public Sub CopyPasteValues()
Sheets("Sheet1").Columns(A).Copy
Sheets("Sheet2").Columns(B).PasteSpecial xlPasteValues
End Sub
위의 코드는 첫 번째 솔루션에서 언급한 코드와 유사합니다. Excel에서 시트의 열에 액세스하는 데 사용할 수 있는 여러 옵션에 대한 아이디어를 사용자에게 제공하는 것은 첫 번째 솔루션의 대안입니다.
해결 방법 3: 특정 범위 내에서 값을 복사하기 위한 상대 참조가 있는 서브루틴
세 번째 솔루션은 한 특정 범위에서 다른 범위로 값을 복사하기 위해 상대 참조가 있는 서브루틴을 공유합니다.
예제 코드:
Public Sub CopyPasteValues()
Dim arr1, arr2, i As Integer
arr1 = Array("AC", "AD")
arr2 = Array("A", "B")
For i = LBound(arr1) To UBound(arr1)
Sheets("Sheet1").Columns(arr1(i)).Copy
Sheets("Sheet2").Columns(arr2(i)).PasteSpecial xlPasteValues
Next
Application.CutCopyMode = False
End Sub
위의 코드는 for
루프에서 상대 주소를 사용하는 CopyPasteValues()
서브루틴을 생성합니다. 따라서 변수가 사용됩니다.
arr1
은 복사해야 하는Sheet1
의 특정 범위입니다.arr2
는 값을 붙여넣을Sheet2
의 특정 범위입니다.i
변수는for
루프에 대한 카운터입니다.
for
루프는 Sheet1
의 AC
열 값을 Sheet2
의 A
열로 복사하고 실행을 계속합니다. for
루프의 끝에 Application.CutCopyMode = False
가 작성되어 다른 시트에 복사하기 위해 선택된 특정 값 범위를 선택 취소합니다.
그래서 우리는 VBA를 통해 사용자가 Microsoft Excel에서 매크로를 작성하여 빈번한 작업을 빠르게 수행할 수 있다는 사실을 알게 되었습니다. 매크로를 기록할 수도 있고 쓸 수도 있습니다. 또한 매크로를 사용하여 Microsoft Excel에서 무제한 기능을 제공할 수 있습니다.
Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!
GitHub