Väga sageli näeb inimesi, kes salvestavad konfidentsiaalseid andmeid Exceli töövihikutesse. Kui neid töövihikuid tuleb jagada teiste kolleegide või sõpradega, on käsitsi kustutamine ainus võimalik valik. Sellest artiklist saate aga teada, kuidas kiiresti mitmest töövihikust konfidentsiaalseid veerge või soovimatuid veerge kustutada.
Download Now
Kui soovite tarkvara võimalikult kiiresti kasutama hakata, saate:
Vastasel juhul, kui soovite ise teha, saate lugeda allpool olevat sisu.
Valmistame GUI ette
Nagu pildil näidatud, nimetage leht 1 ümber "Juhtpaneeliks". Kasutades kujundeid, lisaksime sellele lehele nupud, et muuta see selle tööriista jaoks GUI-ks (graafiline kasutajaliides). Sellel GUI-l on vaja kolme välja. Väli 1 on kasutaja valitud töövihiku kuvamiseks. Väljal 2 kuvatakse rippmenüüna valitud töövihiku veerud. Väli 3 on veergude loend, mis tuleks töövihikust eemaldada.
Kuidas see toimib?

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
Kohandage seda
Praeguse seisuga käsitleb see skript ainult ühte töövihikut. Kuid kasutades viimati kasutatud reameetodit, saate panna makro käsitsema mitut töövihikut pakettrežiimis. Skript ei saa aga avada a rikutud Excel töövihik.
Autori sissejuhatus:
Nick Vipond on andmete taastamise ekspert DataNumen, Inc., mis on maailmas juhtiv andmete taastamise tehnoloogiate, sealhulgas sõna taastamine ja Outlooki taastamise tarkvaratooted. Lisateabe saamiseks külastage www.datanumenCom.