Kako grupno brisati kolone u više Excel radnih knjiga

Podijeli sada:

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

Preuzeti sada

Ako želite što prije početi koristiti softver, možete:

Preuzmite softver odmah

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

Hajde da pripremimo GUI

Kao što je prikazano na slici, preimenujte list 1 u „ControlPanel“. Koristeći oblike, dodali bismo dugmad na ovaj list kako bi izgledao kao GUI (Grafičko korisničko sučelje) za ovaj alat. Potrebna su nam tri polja na ovom GUI. Polje1 je za prikaz radne knjige koju je odabrao korisnik. Polje 2 je da prikaže kolone iz izabrane radne knjige kao padajući meni. Polje 3 je lista kolona koje treba ukloniti iz radne knjige.Pripremite GUI

Kako funkcioniše?

VBA kodProcedura p_fpick bi omogućila korisniku da pregleda i izabere Excel datoteke. Čim se odabere Excel datoteka, skripta će pročitati nazive stupaca iz Sheet1 i ta imena se prikazuju kao padajući meni. Procedura “Add_Column” će omogućiti korisniku da doda ime izabrane kolone iz padajućeg menija kako bi ga dodao na listu kolona koje treba izbrisati. Konačna procedura “Delete_Columns” bi otvorila radnu svesku koja je navedena ispod polja “Odaberi radnu svesku” i uklonila bi sve odabrane kolone. Nakon brisanja, radna knjiga bi bila sačuvana 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

Za sada, ova skripta rukuje samo jednom radnom sveskom. Ali korištenjem posljednje korištene metode reda, možete natjerati makro da rukuje nekoliko radnih knjiga u grupnom načinu rada. Međutim, skripta ne može otvoriti a korumpirani Excel radna sveska.

Uvod za autora:

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

Podijeli sada:

Komentari su zatvoreni.