Ako je možné hromadne mazať stĺpce vo viacerých zošitoch programu Excel

Zdieľať teraz:

Je veľmi bežné vidieť ľudí, ako ukladajú dôverné údaje v zošitoch programu Excel. Ak musia byť tieto zošity zdieľané s ostatnými kolegami alebo priateľmi, jedinou možnosťou je manuálne odstránenie. V tomto článku sa však naučíte, ako rýchlo odstrániť dôverné stĺpce alebo nežiaduce stĺpce z viacerých zošitov.

stiahnuť

Ak chcete začať používať softvér čo najskôr, môžete:

Stiahnite si softvér teraz

V opačnom prípade si môžete prečítať obsah uvedený nižšie.

Poďme pripraviť GUI

Ako je znázornené na obrázku, list 1 premenujte na „ControlPanel“. Pomocou tvarov by sme na tento hárok pridali tlačidlá, aby sa tento nástroj javil ako GUI (grafické používateľské rozhranie). Na tomto GUI potrebujeme tri polia. Pole1 má zobraziť zošit, ktorý vybral používateľ. Pole 2 má zobraziť stĺpce z vybraného zošita ako rozbaľovaciu ponuku. Pole 3 je zoznam stĺpcov, ktoré by sa mali zo zošita odstrániť.Pripravte GUI

Ako to funguje?

Kód VBAProcedúra p_fpick umožní používateľovi prehliadať a vyberať súbory programu Excel. Ihneď po výbere súboru programu Excel by skript načítal názvy stĺpcov z hárka1 a tieto názvy sa zobrazia ako rozbaľovacia ponuka. Postup „Add_Column“ umožní používateľovi pridať názov vybratého stĺpca z rozbaľovacej ponuky a pridať ho do zoznamu stĺpcov, ktoré sa majú vymazať. Posledný postup „Delete_Columns“ by otvoril zošit uvedený v poli „Vyberte zošit“ a odstránil by všetky vybrané stĺpce. Po odstránení by sa zošit uložil a zavrel.

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

Dolaďte to

Od tejto chvíle tento skript spracováva iba jeden zošit. Ale pomocou poslednej použitej metódy riadkov môžete vytvoriť makro, ktoré dokáže spracovať niekoľko zošitov v dávkovom režime. Skript však nemôže otvoriť a poškodený Excel pracovný zošit.

Úvod autora:

Nick Vipond je expert na obnovu dát v DataNumen, Inc., ktorá je svetovým lídrom v oblasti technológií obnovy dát, vrátane zotavenie slov a výhľadové softvérové ​​produkty na obnovenie. Pre viac informácií navštívte www.datanumen. S.

Zdieľať teraz:

Komentáre sú uzavreté.