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

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 start softvér používať čo najskôr, potom 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 ako Office.FileDialog Set v_fd = Application.FileDialog (msoFileDialogFilePicker) s v_fd .AllowMultiSelect = False .Title = "Vyberte zošit programu Excel" .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: = _xlB Between, 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 "). Hodnota 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: = xlToLe ft Koniec Ak Ďalej c Ďalší intcount wb.Close Pravda ab.Aktivovať Koniec 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.

Nechaj odpoveď

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *