ძალიან ხშირია ადამიანების ნახვა, რომლებიც ინახავენ კონფიდენციალურ მონაცემებს Excel-ის სამუშაო წიგნებში. როდესაც ეს სამუშაო წიგნები სხვა კოლეგებთან ან მეგობრებთან უნდა იყოს გაზიარებული, ხელით წაშლა ერთადერთი ხელმისაწვდომი ვარიანტია. თუმცა, ამ სტატიით თქვენ შეისწავლით თუ როგორ სწრაფად წაშალოთ კონფიდენციალური სვეტები ან არასასურველი სვეტები მრავალი სამუშაო წიგნიდან.
ჩამოტვირთეთ არის
თუ გსურთ, რომ პროგრამული უზრუნველყოფის გამოყენება რაც შეიძლება მალე დაიწყოთ, შეგიძლიათ:
წინააღმდეგ შემთხვევაში, თუ გსურთ წვრილმანი, შეგიძლიათ წაიკითხოთ შინაარსი ქვემოთ.
მოდით მოვამზადოთ GUI
როგორც სურათზეა ნაჩვენები, დაარქვით ფურცელს 1, როგორც "ControlPanel". ფორმების გამოყენებით, ჩვენ დავამატებთ ღილაკებს ამ ფურცელზე, რათა გამოჩნდეს როგორც GUI (მომხმარებლის გრაფიკული ინტერფეისი) ამ ხელსაწყოსათვის. ჩვენ გვჭირდება სამი ველი ამ GUI-ზე. ველი 1 არის მომხმარებლის მიერ არჩეული სამუშაო წიგნის ჩვენება. ველი 2 არის სვეტების ჩვენება არჩეული სამუშაო წიგნიდან ჩამოსაშლელ სახით. ველი 3 არის სვეტების სია, რომლებიც უნდა წაიშალოს სამუშაო წიგნიდან.
როგორ მუშაობს?

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
შეასწორეთ იგი
ამ დროისთვის, ეს სკრიპტი ამუშავებს მხოლოდ ერთ სამუშაო წიგნს. მაგრამ ბოლო გამოყენებული მწკრივის მეთოდის გამოყენებით, შეგიძლიათ მაკრო დაამუშაოთ რამდენიმე სამუშაო წიგნი ჯგუფურ რეჟიმში. თუმცა, სკრიპტი ვერ ხსნის a კორუმპირებული Excel სამუშაო წიგნი.
ავტორი შესავალი:
ნიკ ვიპონდი არის მონაცემთა აღდგენის ექსპერტი DataNumen, Inc., რომელიც მსოფლიო ლიდერია მონაცემთა აღდგენის ტექნოლოგიებში, მათ შორის სიტყვის აღდგენა და Outlook-ის აღდგენის პროგრამული პროდუქტები. დამატებითი ინფორმაციისთვის ეწვიეთ www.datanumen. ერთად.