여러 Excel 통합 문서에서 열을 일괄 삭제하는 방법

지금 공유 :

사람들이 Excel 통합 문서에 기밀 데이터를 저장하는 것은 매우 일반적입니다. 이러한 통합 문서를 다른 동료 나 친구와 공유해야하는 경우 수동 삭제가 사용 가능한 유일한 옵션입니다. 그러나이 문서에서는 여러 통합 문서에서 기밀 열이나 원하지 않는 열을 빠르게 삭제하는 방법을 알아 봅니다.

다운로드

원하는 경우tar가능한 한 빨리 소프트웨어를 사용하려면 다음을 수행 할 수 있습니다.

지금 소프트웨어 다운로드

그렇지 않고 DIY를 원한다면 아래 내용을 읽을 수 있습니다.

GUI를 준비합시다

이미지에 표시된대로 Sheet 1의 이름을 "ControlPanel"로 바꿉니다. 모양을 사용하여이 도구에 대해 GUI (그래픽 사용자 인터페이스)로 표시되도록이 시트에 단추를 추가합니다. 이 GUI에는 세 개의 필드가 필요합니다. Field1은 사용자가 선택한 통합 문서를 표시합니다. 필드 2는 선택한 통합 문서의 열을 드롭 다운으로 표시하는 것입니다. 필드 3은 통합 문서에서 제거해야하는 열 목록입니다.GUI 준비

어떻게 진행합니까?

VBA 코드p_fpick 절차를 통해 사용자는 Excel 파일을 찾아보고 선택할 수 있습니다. Excel 파일이 선택 되 자마자 스크립트는 Sheet1에서 열 이름을 읽고 이러한 이름이 드롭 다운으로 표시됩니다. "Add_Column"절차를 사용하면 사용자가 드롭 다운에서 선택한 열 이름을 추가하여 삭제해야하는 열 목록에 추가 할 수 있습니다. 마지막 절차 "Delete_Columns"는 "통합 문서 선택"필드 아래에 나열된 통합 문서를 열고 선택한 모든 열을 제거합니다. 삭제 후 통합 문서가 저장되고 닫힙니다.

Sub P_fpick()
    Dim v_fd As Office.FileDialog
    Set v_fd = Application.FileDialog(msoFileDialogFilePicker)
    With v_fd
        .AllowMultiSelect = False
        .Title = "Please select the Excel workbook"
        .Filters.Clear
        .Filters.Add "Excel", "*.xls*"
        If .Show = True Then
            cp.Range("B4").Value = .SelectedItems(1)
        End If
    End With
    
    Dim wb As Workbook
    Dim ab As Workbook
    
    Set ab = ThisWorkbook
    Set wb = Workbooks.Open(cp.Range("B4").Value)
    
    Dim v_sheets As String
    v_sheets = ""
    
    Dim lc As Long
    lc = wb.Sheets(1).Range("AZ1").End(xlToLeft).Column
    Dim c As Long
    For c = 1 To lc
        If v_sheets = "" Then
            v_sheets = wb.Sheets(1).Cells(1, c).Value
        Else
            v_sheets = v_sheets & "," & wb.Sheets(1).Cells(1, c).Value
        End If
    Next
    
    wb.Close False
    ab.Activate
    
    With ab.Sheets(1).Range("N4:O5").Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:=v_sheets
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
    End With    
    
End Sub

Sub Add_Column()
    If Range("Q4").Value = "" Then
        Range("Q4").Value = Range("N4").Value
    Else
        Range("Q4").Value = Range("Q4").Value & "," & Range("N4").Value
    End If
End Sub

Sub Delete_Columns()
    Dim v_sheets() As String
    Dim ab As Workbook
    Dim wb As Workbook
    Set ab = ThisWorkbook
    Set wb = Workbooks.Open(Sheets(1).Range("B4").Text)
    Dim lc As Long
    lc = wb.Sheets(1).Range("AZ1").End(xlToLeft).Column
    Dim c As Long
    
    v_sheets = Split(ab.Sheets(1).Range("Q4").Text, ",")
    Dim intcount As Long
    For intcount = LBound(v_sheets) To UBound(v_sheets)
        For c = 1 To lc
            If wb.Sheets(1).Cells(1, c).Value = v_sheets(intcount) Then
                wb.Sheets(1).Columns(c).Delete Shift:=xlToLeft
            End If
        Next c
    Next intcount
    wb.Close True
    ab.Activate
End Sub

그것을 조정

현재이 스크립트는 하나의 통합 문서 만 처리합니다. 그러나 마지막으로 사용한 행 방법을 사용하면 매크로가 일괄 처리 모드에서 여러 통합 문서를 처리하도록 할 수 있습니다. 그러나 스크립트는 손상된 Excel 학습장.

저자 소개 :

Nick Vipond는 데이터 복구 전문가입니다. DataNumen, Inc.는 다음과 같은 데이터 복구 기술 분야의 세계적 리더입니다. 단어 복구 그리고 전망 회복 소프트웨어 제품. 자세한 내용은 WWW.datanumen.COM.

지금 공유 :

댓글이 닫혀있다.