엑셀 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을 활용하면 데이터를 자동으로 이동하고 편리하게 정리할 수 있습니다! 🚀