Vba:이름에 특정 텍스트가 포함된 경우 시트 삭제


VBA에서 다음 구문을 사용하여 특정 텍스트가 포함된 Excel 통합 문서의 각 시트를 삭제할 수 있습니다.

 SubDeleteSheets ()

    Dim TextToFind As String
    Dim TextWildcard As String
    Dim Ws As Worksheet
    Dim i As Integer
    
    'prompt user for text to search for in sheet names
    TextToFind = Application.InputBox(" Delete Sheets That Contain: ", _
                                    ThisWorkbook.ActiveSheet.Name, , , , , 2)
                                    
    TextWildcard = " * " & TextToFind & " * "
    Application.DisplayAlerts = False
    
    'loop through sheets and delete each sheet that contains text
    i = 0
    For Each Ws In ThisWorkbook.Sheets
        If Ws.Name Like TextWildcard Then
            Ws.Delete
            i = i + 1
        End If
    Next Ws
    
    Application.DisplayAlerts = True
    
End Sub

이 특정 매크로를 실행하면 특정 텍스트 문자열을 입력할 수 있는 입력 상자가 나타납니다.

Enter 키를 누르면 해당 특정 텍스트가 포함된 Excel 통합 문서의 각 시트가 자동으로 삭제됩니다.

참고 : Application.DisplayAlerts=False 줄은 VBA에 시트 삭제 프로세스를 표시하지 않도록 지시하여 실행 속도를 높입니다.

다음 예에서는 실제로 이 구문을 사용하는 방법을 보여줍니다.

예: VBA를 사용하여 특정 텍스트가 포함된 시트 삭제

4개의 시트가 포함된 다음 Excel 통합 문서가 있다고 가정합니다.

이제 시트 이름에 “팀”이 포함된 모든 시트를 삭제한다고 가정해 보겠습니다.

이를 위해 다음 매크로를 생성할 수 있습니다:

 SubDeleteSheets ()

    Dim TextToFind As String
    Dim TextWildcard As String
    Dim Ws As Worksheet
    Dim i As Integer
    
    'prompt user for text to search for in sheet names
    TextToFind = Application.InputBox(" Delete Sheets That Contain: ", _
                                    ThisWorkbook.ActiveSheet.Name, , , , , 2)
                                    
    TextWildcard = " * " & TextToFind & " * "
    Application.DisplayAlerts = False
    
    'loop through sheets and delete each sheet that contains text
    i = 0
    For Each Ws In ThisWorkbook.Sheets
        If Ws.Name Like TextWildcard Then
            Ws.Delete
            i = i + 1
        End If
    Next Ws
    
    Application.DisplayAlerts = True
    
End Sub

이 매크로를 실행하면 시트 이름에서 검색하려는 텍스트를 입력할 수 있는 입력 상자가 나타납니다.

“Team”을 입력하고 OK를 누르면 이름에 “Team”이 포함된 시트 이름이 자동으로 삭제됩니다.

시트 이름에 ‘팀’이 포함된 두 개의 시트가 제거되었습니다.

“팀”이 포함되지 않은 시트는 그대로 유지되었습니다.

추가 리소스

다음 자습서에서는 VBA에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.

VBA: 통합 문서의 시트 수를 계산하는 방법
VBA: 다른 통합 문서에서 데이터를 추출하는 방법
VBA:여러 줄을 삽입하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다