Kaip grupiniu būdu ištrinti stulpelius keliose „Excel“ darbaknygėse

Bendrinti dabar:

Labai dažnai žmonės išsaugo konfidencialius duomenis „Excel“ darbaknygėse. Kai šiomis darbaknygėmis reikia dalytis su kitais kolegomis ar draugais, vienintelė galima parinktis yra ištrinti rankiniu būdu. Tačiau iš šio straipsnio sužinosite, kaip greitai ištrinti konfidencialius stulpelius arba nepageidaujamus stulpelius iš kelių darbaknygių.

Atsisiųsti dabar

Jei norite kuo greičiau pradėti naudoti programinę įrangą, galite:

Atsisiųskite programinę įrangą dabar

Kitu atveju, jei norite pasidaryk pats, galite perskaityti toliau pateiktą turinį.

Paruoškime GUI

Kaip parodyta paveikslėlyje, pervardykite 1 lapą į „ControlPanel“. Naudodami formas, šiame lape pridėtume mygtukus, kad jis atrodytų kaip šio įrankio grafinė vartotojo sąsaja. Šioje GUI mums reikia trijų laukų. 1 laukas skirtas parodyti vartotojo pasirinktą darbaknygę. 2 laukas skirtas rodyti stulpelius iš pasirinktos darbaknygės kaip išskleidžiamąjį meniu. 3 laukas yra stulpelių, kuriuos reikia pašalinti iš darbaknygės, sąrašas.Paruoškite GUI

Kaip tai veikia?

VBA kodasProcedūra p_fpick leistų vartotojui naršyti ir pasirinkti Excel failus. Kai tik pasirenkamas „Excel“ failas, scenarijus nuskaito stulpelių pavadinimus iš lapo1 ir šie pavadinimai rodomi kaip išskleidžiamasis meniu. Procedūra „Add_Column“ leis vartotojui iš išskleidžiamojo sąrašo pridėti pasirinkto stulpelio pavadinimą, kad jis būtų įtrauktas į stulpelių, kuriuos reikia ištrinti, sąrašą. Paskutinė procedūra „Delete_Columns“ atidarys darbaknygę, kuri buvo nurodyta lauke „Pasirinkite darbaknygę“, ir pašalins visus pasirinktus stulpelius. Ištrynus darbaknygę bus išsaugota ir uždaryta.

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

Pakeiskite

Šiuo metu šis scenarijus tvarko tik vieną darbaknygę. Tačiau naudodami paskutinį naudotą eilutės metodą, makrokomandą galite nustatyti, kad kelias darbaknyges tvarkytų paketiniu režimu. Tačiau scenarijus negali atidaryti a sugadintas Excel darbo knyga.

Autoriaus įvadas:

Nickas Vipondas yra duomenų atkūrimo ekspertas DataNumen, Inc., kuri yra pasaulyje duomenų atkūrimo technologijų lyderė, įskaitant žodžio atkūrimas ir Outlook atkūrimo programinės įrangos produktai. Norėdami gauti daugiau informacijos, apsilankykite WWW.datanumen.com.

Bendrinti dabar:

Komentarai yra uždaryti.