როგორ წავშალოთ სვეტები რამდენიმე Excel-ის სამუშაო წიგნში

გააზიარე ახლა:

ძალიან ხშირია ადამიანების ნახვა, რომლებიც ინახავენ კონფიდენციალურ მონაცემებს Excel-ის სამუშაო წიგნებში. როდესაც ეს სამუშაო წიგნები სხვა კოლეგებთან ან მეგობრებთან უნდა იყოს გაზიარებული, ხელით წაშლა ერთადერთი ხელმისაწვდომი ვარიანტია. თუმცა, ამ სტატიით თქვენ შეისწავლით თუ როგორ სწრაფად წაშალოთ კონფიდენციალური სვეტები ან არასასურველი სვეტები მრავალი სამუშაო წიგნიდან.

ჩამოტვირთეთ არის

თუ გსურთ, რომ პროგრამული უზრუნველყოფის გამოყენება რაც შეიძლება მალე დაიწყოთ, შეგიძლიათ:

ჩამოტვირთეთ პროგრამა ახლავე

წინააღმდეგ შემთხვევაში, თუ გსურთ წვრილმანი, შეგიძლიათ წაიკითხოთ შინაარსი ქვემოთ.

მოდით მოვამზადოთ GUI

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

როგორ მუშაობს?

VBA კოდიპროცედურა p_fpick საშუალებას მისცემს მომხმარებელს დაათვალიეროს და შეარჩიოს Excel ფაილები. Excel ფაილის არჩევისთანავე, სკრიპტი წაიკითხავს სვეტების სახელებს Sheet1-დან და ეს სახელები გამოჩნდება ჩამოსაშლელ სახით. პროცედურა „Add_Column“ საშუალებას მისცემს მომხმარებელს დაამატოს არჩეული სვეტის სახელი ჩამოსაშლელი მენიუდან, რათა დაამატოს წაშლილი სვეტების სიაში. საბოლოო პროცედურა „Delete_Columns“ გახსნის სამუშაო წიგნს, რომელიც ჩამოთვლილია ველში „სამუშაო წიგნის არჩევა“ და წაშლის ყველა არჩეულ სვეტს. წაშლის შემდეგ, სამუშაო წიგნი შეინახება და დაიხურება.

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. ერთად.

გააზიარე ახლა:

კომენტარები დახურულია.