Kako grupno izbrisati stupce u više Excel radnih knjiga

Podijeli sada:

Vrlo je uobičajeno vidjeti ljude kako spremaju povjerljive podatke u radne knjige programa Excel. Kada se ove radne knjige moraju dijeliti s drugim kolegama ili prijateljima, ručno brisanje jedina je dostupna opcija. Međutim, u ovom ćete članku naučiti kako brzo izbrisati povjerljive stupce ili neželjene stupce iz više radnih knjiga.

Preuzmite sada

Ako želite start koristiti softver što je prije moguće, tada možete:

Preuzmite softver sada

Inače, ako želite DIY, možete pročitati sadržaj u nastavku.

Pripremimo GUI

Kao što je prikazano na slici, preimenujte Sheet 1 u "ControlPanel". Koristeći oblike, dodali bismo gumbe na ovaj list kako bi izgledao kao GUI (grafičko korisničko sučelje) za ovaj alat. Trebamo tri polja na ovom GUI-ju. Polje1 služi za prikaz radne knjige koju je odabrao korisnik. Polje 2 je za prikaz stupaca iz odabrane radne knjige kao padajućeg izbornika. Polje 3 je popis stupaca koje treba ukloniti iz radne knjige.Pripremite GUI

Kako radi?

VBA kodProcedura p_fpick omogućila bi korisniku pregledavanje i odabir Excel datoteka. Čim se odabere Excel datoteka, skripta bi pročitala nazive stupaca iz Sheet1 i ti se nazivi prikazuju kao padajući izbornik. Procedura “Add_Column” omogućit će korisniku da doda naziv odabranog stupca s padajućeg izbornika kako bi ga dodao na popis stupaca koji se moraju izbrisati. Konačna procedura “Delete_Columns” otvorila bi radnu knjigu koja je navedena ispod polja “Odaberite radnu knjigu” i uklonila bi sve odabrane stupce. Nakon brisanja, radna bi knjiga bila spremljena i zatvorena.

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

Podesite ga

Od sada ova skripta obrađuje samo jednu radnu knjigu. Ali koristeći metodu posljednjeg korištenog retka, možete učiniti da makronaredba obrađuje nekoliko radnih knjiga u skupnom načinu. Međutim, skripta ne može otvoriti a pokvaren Excel radna bilježnica.

Uvod za autora:

Nick Vipond je stručnjak za oporavak podataka u DataNumen, Inc., koji je svjetski lider u tehnologijama za oporavak podataka, uključujući oporavak riječi i softverski proizvodi za oporavak Outlooka. Za više informacija posjetite www.datanumen.com.

Podijeli sada:

Komentari su zatvoreni.