메뉴
실무 위키VBA 코드Delete_Record

Delete_Record

Sub

시트에서 지정한 ID 또는 행 번호의 데이터를 삭제하는 VBA 명령문입니다.

Delete_Record 코드 미리보기
구문 Delete_Record 시트, ID, [행번호여부], [ID열]
인수구분 형식 설명
시트 필수 Worksheet
데이터를 삭제할 시트입니다.
현재 실행중인 통합문서의 시트를 시트명으로 참조하려면 ThisWorkBook.WorkSheets("시트명") 형태로 지정합니다.
ID 필수 Variant
삭제할 데이터의 ID 또는 행번호입니다.
숫자와 문자 형태 모두 입력 가능합니다.
행번호여부 선택 Boolean
TRUE일 경우 입력한 ID값을 행 번호로 참조합니다. 기본값은 FALSE 입니다.
ID열 선택 Long
ID가 입력된 열을 지정합니다. 기본값은 1 입니다.

마스터 코드

복사한 코드는 VBA 편집기(Alt + F11) 새 모듈에 붙여넣어 사용하세요
Module1 · Delete_Record
Sub Delete_Record(WS As Worksheet, ID, Optional IsRowNo As Boolean = False, Optional IDcol As Long = 1)
'###############################################################
'오빠두엑셀 VBA 사용자지정함수 (https://www.oppadu.com)
'수정 및 배포 시 출처를 반드시 명시해야 합니다.
'■ Delete_Record 함수
'■ 시트의 특정 데이터를 삭제합니다. 삭제할 ID를 입력하거나 행번호로 직접 지정할 수 있습니다.
'■ 사용방법
'Delete_Record ThisWorkBook.WorkSheets("시트명"), 4
'▶ 인수 설명
'_____________WS : 데이터를 삭제할 시트입니다.
'_____________ID : 데이터를 삭제하기 위하여 참조할 ID 또는 행번호입니다.
'_____________IsRowNo : [선택인수] TRUE일 경우 입력한 행 번호의 데이터를 삭제합니다. 기본값은 FALSE 입니다.
'_____________IDCol : [선택인수] ID가 입력된 열 번호입니다. 기본값은 1 입니다.
'###############################################################
Dim i As Long
Dim cRow As Long
If IsNumeric(ID) = True Then ID = CLng(ID)
With WS
If IsRowNo = False Then
cRow = .Cells(.Rows.Count, IDcol).End(xlUp).Row
For i = 1 To cRow
If .Cells(i, IDcol).Value = ID Then .Cells(i, 1).EntireRow.Delete: Exit For
Next
Else
.Cells(ID, 1).EntireRow.Delete
End If
End With
End Sub

활용 예제

'직원DB' 시트에서 ID가 7인 데이터 삭제
'시트명 : 직원DB
Delete_Record ThisWorkBook.WorkSheets("직원DB"), 7
'제품DB' 시트에서 10번째 행의 데이터 삭제
'시트명 : 제품DB
Delete_Record ThisWorkBook.WorkSheets("제품DB"), 10, TRUE
댓글 1
5 (1개 평가)
강민준🤗
강민준🤗 2024.08.11 12:08
좋은 자료 감사합니다.🙇‍♂️
스크랩 완료