Vrlo je uobičajeno vidjeti ljude kako spremaju povjerljive podatke u radne knjige programa Excel. Kada se ove radne knjige moraju dijeliti s drugim kolegama ili prijateljima, ručno brisanje jedina je dostupna opcija. Međutim, u ovom ćete članku naučiti kako brzo izbrisati povjerljive stupce ili neželjene stupce iz više radnih knjiga.
Preuzmite sada
Ako želite start koristiti softver što je prije moguće, tada možete:
Inače, ako želite DIY, možete pročitati sadržaj u nastavku.
Pripremimo GUI
Kao što je prikazano na slici, preimenujte Sheet 1 u "ControlPanel". Koristeći oblike, dodali bismo gumbe na ovaj list kako bi izgledao kao GUI (grafičko korisničko sučelje) za ovaj alat. Trebamo tri polja na ovom GUI-ju. Polje1 služi za prikaz radne knjige koju je odabrao korisnik. Polje 2 je za prikaz stupaca iz odabrane radne knjige kao padajućeg izbornika. Polje 3 je popis stupaca koje treba ukloniti iz radne knjige.
Kako radi?

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
Od sada ova skripta obrađuje samo jednu radnu knjigu. Ali koristeći metodu posljednjeg korištenog retka, možete učiniti da makronaredba obrađuje nekoliko radnih knjiga u skupnom načinu. Međutim, skripta ne može otvoriti a pokvaren Excel radna bilježnica.
Uvod za autora:
Nick Vipond je stručnjak za oporavak podataka u DataNumen, Inc., koji je svjetski lider u tehnologijama za oporavak podataka, uključujući oporavak riječi i softverski proizvodi za oporavak Outlooka. Za više informacija posjetite www.datanumen.com.
