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:
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ť.
Ako to funguje?

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.