Range 개체

Cut 메서드

노만e 2025. 3. 12. 06:32

엑셀 VBA에서 Cut 메서드셀, 범위, 행, 열, 시트 및 워크북 등의 데이터를 잘라내어 이동할 때 사용됩니다.

잘라낸 데이터는 클립보드에 저장되며, Destination을 지정하면 즉시 해당 위치로 이동할 수 있습니다.


1. 기본 문법

Range("A1").Cut Destination:=Range("B1") ' A1을 B1로 이동

📌 Cut은 선택한 범위를 잘라내고 Destination에 붙여넣음

📌 Destination을 생략하면 클립보드에 저장됨


2. 셀 및 범위 이동

📌 특정 셀 이동

Sub 셀_잘라내기()
Range("A1").Cut Destination:=Range("B1") ' A1 → B1 이동
End Sub

📌 A1의 데이터를 B1로 이동하며 원래 위치의 데이터는 삭제됨


📌 여러 개의 셀 이동

Sub 범위_잘라내기()
Range("A1:A5").Cut Destination:=Range("C1:C5") ' A1:A5 → C1:C5 이동
End Sub

📌 A1:A5 → C1:C5로 이동하며 원래 위치 데이터 삭제


📌 한 번에 잘라내기 후 붙여넣기

Sub 잘라내기_후_붙여넣기()
Range("A1:A5").Cut
Range("C1").Select
ActiveSheet.Paste
Application.CutCopyMode = False ' 점선 테두리 제거
End Sub

📌 ActiveSheet.Paste를 사용하여 클립보드에 저장된 데이터 붙여넣기

📌 Application.CutCopyMode = False → 복사 점선 테두리 제거


3. 행과 열 이동

📌 행 이동

Sub 행_잘라내기()
Rows(1).Cut Destination:=Rows(3) ' 1행 → 3행 이동
End Sub

📌 열 이동

Sub 열_잘라내기()
Columns("A").Cut Destination:=Columns("C") ' A열 → C열 이동
End Sub

4. 워크시트 이동

📌 시트 이동

Sub 시트_이동()
Sheets("Sheet1").Move After:=Sheets("Sheet2") ' Sheet1을 Sheet2 뒤로 이동
End Sub

📌 Sheet1을 Sheet2 뒤로 이동

📌 After → 지정한 시트 뒤로 이동

📌 Before → 지정한 시트 앞으로 이동


5. 워크북 간 시트 이동

📌 파일 간 시트 이동

Sub 워크북_사이_시트_이동()
Workbooks("원본.xlsx").Sheets("Sheet1").Move _
Before:=Workbooks("대상.xlsx").Sheets(1)
End Sub

📌 다른 엑셀 파일로 시트 이동 가능

📌 Before → 첫 번째 시트 앞에 이동

📌 After → 마지막 시트 뒤에 이동


6. 특정 데이터 조건으로 이동

📌 특정 값이 있는 셀만 이동

Sub 특정값_있는셀_이동()
Dim rng As Range, cell As Range, target As Range
Set rng = Range("A1:A10")
Set target = Range("C1") ' 이동할 위치
For Each cell In rng
If cell.Value <> "" Then
cell.Cut Destination:=target
Set target = target.Offset(1, 0) ' 다음 행으로 이동
End If
Next cell
End Sub

📌 빈 값이 아닌 셀만 잘라서 C열로 이동


7. 사용된 범위 이동

Sub 사용된범위_이동()
ActiveSheet.UsedRange.Cut Destination:=Sheets("Sheet2").Range("A1")
End Sub

📌 현재 시트의 사용된 범위를 전체 이동하여 Sheet2에 붙여넣기


8. 자동 필터를 적용한 값만 이동

Sub 필터된_값_이동()
Dim rng As Range
Dim target As Range
' A1:A100 범위에서 필터 적용된 데이터 이동
Set rng = Range("A1:A100").SpecialCells(xlCellTypeVisible)
Set target = Sheets("Sheet2").Range("A1")
rng.Cut Destination:=target
End Sub

📌 필터된 데이터만 선택하여 이동 (SpecialCells(xlCellTypeVisible))


9. 클립보드에서 잘라낸 데이터 붙여넣기

Sub 클립보드_붙여넣기()
Range("C1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
End Sub

📌 클립보드에 저장된 잘라낸 데이터를 붙여넣기


📝 정리

기능
VBA 코드
셀 이동
Range("A1").Cut Destination:=Range("B1")
범위 이동
Range("A1:A5").Cut Destination:=Range("C1:C5")
행 이동
Rows(1).Cut Destination:=Rows(3)
열 이동
Columns("A").Cut Destination:=Columns("C")
시트 이동
Sheets("Sheet1").Move After:=Sheets("Sheet2")
워크북 간 시트 이동
Workbooks("원본.xlsx").Sheets("Sheet1").Move Before:=Workbooks("대상.xlsx").Sheets(1)
특정 값이 있는 셀만 이동
If cell.Value <> "" Then cell.Cut
사용된 범위 이동
ActiveSheet.UsedRange.Cut Destination:=Sheets("Sheet2").Range("A1")
필터된 값 이동
Range("A1:A100").SpecialCells(xlCellTypeVisible).Cut

🔥 VBA의 Cut을 활용하면 데이터를 자동으로 이동하고 편리하게 정리할 수 있습니다! 🚀