VBA를 사용하여 엑셀 수식을 다른 시트로 복사하기

VBA를 사용하여 한 Excel 워크시트에서 다른 워크시트로 수식을 복사하려면 원본 범위의 크기를 FormulaR1C1대상 범위와 동일하게 지정해야 합니다. 이렇게 하면 셀 서식은 복사되지 않고 수식 패턴만 전송되며, 상대 참조는 대상 셀에 맞게 조정됩니다. 아래 매크로는 워크시트 이름을 사용하므로 현재 활성화된 시트에 관계없이 작동합니다.

셀 C2가 선택되어 있고 수식 입력줄에 `=A2*B2` 수식이 표시된 워크시트 원본입니다.
원본 워크시트 예제에서는 셀 C2에 `=A2*B2`를 사용합니다.

시작하기 전에

데스크톱 버전의 Excel을 사용하십시오. 웹용 Excel은 매크로가 포함된 통합 문서를 열 수는 있지만 VBA 매크로를 만들거나 실행하거나 편집할 수 없습니다. 자세한 내용은 Microsoft의 웹용 Excel 안내를 참조 하십시오. 탭 이름과 원본 및 대상 주소를 정확히 확인하십시오. 이 예에서 수식은 에 있으며 의 에서 시작하여 Source!C2:C10배치됩니다 .SummaryC2

이 예제에서는 ThisWorkbook매크로 코드가 저장된 통합 문서를 참조합니다. 매크로는 해당 통합 문서에 그대로 두거나, 코드가 다른 위치에 저장된 경우 통합 문서 참조를 변경하십시오. 워크시트 이름은 통합 문서의 Worksheets컬렉션에서 선택하며, 따옴표 안의 이름은 탭과 정확히 일치해야 합니다.

Excel 개발자 탭에서 통합 문서 표 위에 Visual Basic 버튼이 강조 표시됩니다.
Excel의 개발자 탭에서 Visual Basic 편집기를 엽니다.

VBA를 사용하여 수식을 다른 시트로 복사합니다.

Excel의 개발자 탭 에서 Visual Basic 편집기를 열고 Visual Basic을 선택한 다음 삽입 > 모듈을 선택합니다 . 다음 프로시저를 모듈에 붙여넣습니다.

Sub CopyFormulasToAnotherSheet()
    Dim wb As Workbook
    Dim sourceRange As Range
    Dim targetCell As Range
    Dim targetRange As Range

    Set wb = ThisWorkbook
    Set sourceRange = wb.Worksheets("Source").Range("C2:C10")
    Set targetCell = wb.Worksheets("Summary").Range("C2")
    Set targetRange = targetCell.Resize(sourceRange.Rows.Count, _
                                        sourceRange.Columns.Count)

    targetRange.FormulaR1C1 = sourceRange.FormulaR1C1
End Sub

Source워크북에 맞게 , Summary, 및 범위 주소를 변경하세요 . targetCell는 첫 번째 대상 셀입니다. Resize를 사용하면 대상 셀의 높이와 너비가 원본 셀과 동일하게 설정됩니다. 이는 여러 셀에 수식을 적용할 때 필요합니다. 단일 수식을 적용하려면 원본을 와 같이 하나의 셀로 설정하세요 C2.

Visual Basic 편집기의 코드 창에 sourceRange 및 destRange 워크시트 범위와 FormulaR1C1 할당이 표시됩니다.
이 매크로는 소스 범위의 FormulaR1C1 패턴을 대상 범위에 할당합니다.

매크로를 실행하고 저장하세요.

  1. CopyFormulasToAnotherSheetVisual Basic 편집기 내부의 아무 곳에나 삽입 포인트를 놓고 F5 키를 누릅니다. 또는 Excel로 돌아가서 개발자 > 매크로를 선택 하고 프로시저를 선택한 다음 실행을 선택할 수도 있습니다 .
  2. 대상 셀을 확인하세요 Summary. 와 같은 원본 수식을 사용하는 경우 =A2*B2, Source!C2복사된 수식의 패턴 Summary!C2도 동일합니다 =A2*B2. 수식이 원본 시트의 값을 계속 읽어야 하는 경우, 원본 수식에서 해당 참조를 한정하세요(예: ) =Source!A2*Source!B2.
  3. VBA 프로시저가 유지되도록 통합 문서를 Excel 매크로 사용 통합 문서(Macro-Enabled Workbook ) 로 저장하십시오. Excel에서 매크로 보안에 대해 묻는 경우, 신뢰하는 매크로만 실행하십시오..xlsm
셀 C2가 선택되고 복사된 수식 `=A2*B2`가 수식 입력줄에 표시되는 워크시트 요약입니다.
대상 워크시트의 C2 셀에는 이제 동일한 상대 경로 수식 패턴이 적용됩니다.

공식에 맞는 방법을 선택하세요

FormulaR1C1이 기능은 수식 구조를 복사합니다. 수식 셀의 왼쪽 두 열을 참조하는 경우 대상 범위에서도 왼쪽 두 열에 그대로 유지되며, 절대 참조는 고정됩니다. 이는 대상 범위에서 동일한 계산 패턴을 유지하려는 경우에 유용합니다. 서식은 복사되지 않습니다. 원본 범위에 상수나 공백이 포함된 경우, 해당 값이나 빈 셀도 그대로 전송되므로 복사할 수식으로 구성된 범위를 사용하는 것이 좋습니다.

수식과 서식을 포함한 일반적인 Excel 복사 동작을 유지하려면 Range.Copy대상을 지정하여 사용하십시오.

wb.Worksheets("Source").Range("C2:C10").Copy _
    Destination:=wb.Worksheets("Summary").Range("C2")

이 메서드는 셀의 전체 내용과 서식을 복사합니다. Excel은 표준 복사 시와 마찬가지로 상대 참조를 조정합니다. 대상에 수식 외에 다른 내용도 복사해야 할 때 사용하십시오. Microsoft는 FormulaR1C1 속성 과 Range.Copy 메서드 모두에 대한 설명서를 제공합니다 .

일반적인 문제 해결

  • "첨자 범위를 벗어났습니다": 워크시트 이름이 탭에 표시된 대로 공백을 포함하여 정확하게 입력되었는지 확인하십시오.
  • 수식이 잘못된 셀을 가리키고 있습니다. FormulaR1C1 대상 시트에 대한 상대 참조를 사용하고 있습니다. 수식이 원본 시트를 계속 가리켜야 하는 경우 시트 이름을 수식에 추가하세요.
  • 코드가 잘못된 통합 문서를 참조하고 있습니다. ThisWorkbook 매크로가 포함된 파일을 가리키고 있습니다. 코드가 개인 매크로 통합 문서에 있는 경우, wb열려 있는 통합 문서를 이름으로 지정해야 합니다.
  • 매크로가 목록에 없습니다. 파일이 다른 이름으로 저장되었는지 .xlsm, 그리고 신뢰할 수 있는 파일에 대해 매크로가 사용 설정되어 있는지 확인하십시오. Microsoft의 매크로 사용 설명서를 참조 하면 개발자 탭을 활성화하고 프로시저를 실행하는 방법을 알 수 있습니다.

원본 및 대상 이름, 범위, 참조 동작을 의도적으로 설정하면 매크로는 시트를 선택하거나 클립보드에 의존하지 않고 단일 수식 또는 전체 블록을 복사할 수 있습니다.

댓글 남기기

FotoSketcher를 사용하여 사진을 그림, 스케치, 만화로 변환하세요.

FotoSketcher를 사용하여 사진을 그림, 스케치, 만화로 변환하세요.

FotoSketcher Studio를 사용하여 사진을 그림, 연필 스케치 또는 만화로 변환해 보세요. 효과를 선택하고, 미리보기를 조정하고, 작품을 저장하는 방법을 알아보세요.

오디오 식별 도구를 사용하여 오디오 파일을 자세히 분석하고 식별하세요.

오디오 식별 도구를 사용하여 오디오 파일을 자세히 분석하고 식별하세요.

오디오 식별 도구가 비트 전송률, 인코더 및 태그에 대해 어떤 정보를 제공하는지, 기존 워크플로는 어떻게 작동하는지, 그리고 현재 어떤 도구들이 파일을 검사하거나 노래를 식별하는지 알아보세요.

내 사진 색인: 윈도우용 오픈 소스 사진 정리 도구

내 사진 색인: 윈도우용 오픈 소스 사진 정리 도구

My Photo Index는 로컬 이미지에 태그를 지정하고, 평점을 매기고, 탐색할 수 있는 기존 Windows 사진 관리 프로그램입니다. 해당 프로그램의 기능, 호환성 제한 사항 및 유지 관리되는 대체 프로그램에 대해 알아보세요.

속성 변경 도구를 사용하여 파일 및 폴더의 속성, 날짜 및 시간을 변경하세요.

속성 변경 도구를 사용하여 파일 및 폴더의 속성, 날짜 및 시간을 변경하세요.

Attribute Changer를 사용하여 Windows 파일 속성 및 타임스탬프를 편집하고, JPEG EXIF ​​사진 날짜를 업데이트하고, 일괄 변경 사항을 안전하게 미리 보는 방법을 알아보세요.

Windows 10에서 각 모니터에 다른 배경화면을 설정하는 방법

Windows 10에서 각 모니터에 다른 배경화면을 설정하는 방법

Windows 10 모니터마다 별도의 배경 화면을 설정하고, 디스플레이를 식별하고, 이미지 맞춤을 조정하고, 모니터 선택 항목이 누락된 문제를 해결합니다.

pViewer: 최소한의 기능을 갖춘 이미지 뷰어 및 만화/코믹 리더

pViewer: 최소한의 기능을 갖춘 이미지 뷰어 및 만화/코믹 리더

pViewer의 기능, 사진 및 만화 모드의 작동 방식, 다운로드해야 할 Windows 버전, 그리고 기존 버전과 새로 작성된 버전의 차이점에 대해 알아보세요.

NeoDownloader: 웹사이트에서 이미지를 일괄 다운로드하고 매개변수를 설정하세요

NeoDownloader: 웹사이트에서 이미지를 일괄 다운로드하고 매개변수를 설정하세요

NeoDownloader 프로젝트를 생성하고, 크롤링 범위를 선택하고, 이미지 필터와 저장 위치를 ​​설정하고, 일괄 다운로드를 검토하는 방법을 알아보세요.

Windows 7 및 8에서 단축키를 사용하여 다음 바탕 화면 배경으로 전환하는 방법

Windows 7 및 8에서 단축키를 사용하여 다음 바탕 화면 배경으로 전환하는 방법

Windows 7 또는 8 슬라이드쇼를 설정하고, 간단한 VBScript 바로가기를 만든 다음, 키보드 단축키를 할당하여 다음 배경화면으로 넘어가도록 설정하세요.

XnConvert: 이미지에 효과를 적용하고 형식을 일괄 변환합니다.

XnConvert: 이미지에 효과를 적용하고 형식을 일괄 변환합니다.

XnConvert를 사용하여 사진에 효과를 적용하고, 크기를 조정하고, 이미지 형식을 일괄 변환할 수 있습니다. 출력 설정을 선택하고, 편집 내용을 미리 보고, 원본 파일을 보호하세요.

ManicTime으로 근무 시간과 컴퓨터 사용량을 추적하세요

ManicTime으로 근무 시간과 컴퓨터 사용량을 추적하세요

ManicTime이 애플리케이션 사용, 활성 및 유휴 시간, 문서를 추적하는 방법을 알아보고, 활동 기록을 프로젝트 태그 및 시간표로 변환하세요.