본문 바로가기
Range object

셀 복사,잘라내기,붙여넣기

2023. 6. 28.

1.같은시트로 복사하기

Sub 데이터_복사()
    Dim 원본_범위 As Range
    Dim 대상_범위 As Range
    
    ' 복사할 데이터의 원본 범위를 지정합니다.
    Set 원본_범위 = Range("A1:C10")
    
    ' 데이터를 붙여넣을 대상 범위를 지정합니다.
    Set 대상_범위 = Range("E1")
    
    ' 데이터를 복사하여 붙여넣습니다.
    원본_범위.Copy 대상_범위
End Sub

2. 다른 시트로 복사하기

Sub CopyData()
    Dim sourceSheet As Worksheet
    Dim targetSheet As Worksheet
    Dim sourceRange As Range
    Dim targetRange As Range
    
    ' 복사할 데이터의 시트와 범위를 지정
    Set sourceSheet = Worksheets("Source")
    Set sourceRange = sourceSheet.Range("A1:B4")
    
    ' 붙여넣을 데이터의 시트와 범위를 지정
    Set targetSheet = Worksheets("Target")
    Set targetRange = targetSheet.Range("B1")
    
   ' 데이터 복사
   sourceRange.Copy Destination:=targetRange
End Sub

3.복사 후 새 파일에 붙여넣기

Sub CreateNewFileAndCopyData()
    Dim sourceWorkbook As Workbook
    Dim sourceSheet As Worksheet
    Dim sourceRange As Range
    Dim newWorkbook As Workbook
    Dim newSheet As Worksheet
    Dim newFilePath As String
    
    ' 원본 통합문서와 시트 지정
    Set sourceWorkbook = ThisWorkbook
    Set sourceSheet = sourceWorkbook.Sheets("Sheet1")
    
    ' 원본 범위 지정
    Set sourceRange = sourceSheet.Range("A1:B4")
    
    ' 새로운 통합문서 생성
    Set newWorkbook = Workbooks.Add
    Set newSheet = newWorkbook.Sheets(1)
    
    ' 데이터를 새 통합문서에 붙여넣기
    sourceRange.Copy Destination:=newSheet.Range("A1")
    
    ' 새 통합문서를 원하는 파일경로와 이름으로 저장하기
    newFilePath = "D:\VBA Folder\NewWorkbook.xlsx"
    newWorkbook.SaveAs newFilePath
    
    ' 새 통합문서 닫기
    newWorkbook.Close
    
End Sub

4. 선택한 범위를 잘라내서 다른 범위에 붙여넣기

Sub CutRange()
    
    Dim sourceRange As Range
    Dim targetRange As Range

    ' 잘라낼 원본 범위 지정
    Set sourceRange = Range("A1:B10")

    ' 붙여넣을 대상 범위 지정
    Set targetRange = Range("D1")

    ' 원본 범위를 잘라내어 붙여넣기
    sourceRange.Cut targetRange
End Sub

5.선택하여 붙여넣기

매크로 기록한 코드입니다.

Sub Macro1()
'
' Macro1 Macro
'

'
    Range("A1").Select
    Selection.CurrentRegion.Select
    Selection.Copy
    Range("D1").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
End Sub

약간 다듬은 코드입니다.(값만 붙여넣기)

Sub CopyAndPasteValues()

    Range("A1").CurrentRegion.Copy
    Range("D1").PasteSpecial Paste:=xlPasteValues
    
    Application.CutCopyMode = False
    
End Sub

 

위 코드는 선택하여 붙여넣기에서 값을 선택한 것과 같습니다.

 

다음은 연산에서 더하기를 선택한 예제입니다.

 

Sub CopyAndPasteValuesAdd()

    With Worksheets("Sheet1")
        .Range("C1:C5").Copy
        .Range("D1:D5").PasteSpecial _
                Operation:=xlPasteSpecialOperationAdd
    End With
    
    Application.CutCopyMode = False
    
End Sub

매크로 실행 전

 

매크로 실행 후

XlPasteType 상수와 XlPasteSpecialOperation 상수는 링크를 참고하세요.(캡춰를 했으나 그림이 잘 보이지 않아서 링크로 걸었습니다)

 

XlPasteType enumeration (Excel)

Office VBA reference topic

learn.microsoft.com

 

 

XlPasteSpecialOperation enumeration (Excel)

Office VBA reference topic

learn.microsoft.com

 

'Range object' 카테고리의 다른 글

[Range개체] Resize 속성  (0) 2023.06.29
[Range 개체] Offset Property  (0) 2023.06.28
셀에 수식 입력하기  (0) 2023.06.25
셀에 값 입력하기  (0) 2023.06.25
셀 및 범위 선택하기  (0) 2023.06.23