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

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

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

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

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

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

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

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

წაშალეთ არასასურველი ფურცლები სამუშაო წიგნიდან და დაარქვით Sheet 1 GUI და შეინახეთ სამუშაო წიგნი, როგორც მაკრო ჩართული სამუშაო წიგნი. როგორც ნაჩვენებია მიმაგრებულ სურათზე, შექმენით ორი ღილაკი ფურცელზე და დაარქვით ღილაკ 1-ს „დათვალიერება“ და დაარქვით ღილაკს 2 „ფაილების წაშლა“. თქვენ შეგიძლიათ რამდენიმე სვეტის შერწყმა, რათა შექმნათ უფრო დიდი სვეტი ფაილის ბილიკისთვის, ან შეგიძლიათ გაზარდოთ ერთი სვეტის სიგანე.მოამზადეთ GUI

მოდით გავხადოთ ის ფუნქციონალური

დააკოპირეთ სკრიპტი ახალ მოდულში თქვენს მაკრო ჩართულ სამუშაო წიგნში. დარწმუნდით, რომ მოდულის სახელი უნდა იყოს Module1. წინააღმდეგ შემთხვევაში, სკრიპტი შეცდომას გაუშვებს. მიამაგრეთ სკრიპტი "Scan_This_Folder" ღილაკზე "Browse" და პროცედურა "Delete_Files" უნდა დაერთოს ღილაკს "Delete Files".

Sub filefordelete()
    Dim v_var1 As Scripting.FileSystemObject
    Dim v_var2 As Scripting.Folder
    Dim v_var3 As Scripting.File
    scanthis = Range("B3").Text
    Set v_var1 = New Scripting.FileSystemObject
    Set v_var2 = v_var1.GetFolder(scanthis)
    i = 7
    For Each v_var3 In v_var2.Files
        Cells(i, 2) = v_var3
        Cells(i, 11) = v_var3.DateLastModified
        i = i + 1
    Next v_var3
    Set v_var1 = Nothing
End Sub

Sub Delete_Files()
    Dim lr As Long
    Dim r As Long
    lr = Range("B" & Rows.Count).End(xlUp).Row
    For r = 7 To lr
        Kill Range("B" & r).Value
    Next r
End Sub

Function scanthisfolder() As String
    Dim v1 As FileDialog
    Dim v2 As String
    Set v1 = Application.FileDialog(msoFileDialogFolderPicker)
    With v1
        .Title = "Folder to scan for files"
        .AllowMultiSelect = False
        If .Show <> -1 Then GoTo NextCode
        v2 = .SelectedItems(1)
    End With
NextCode:
    scanthisfolder = v2
    Set v1 = Nothing
End Function

Sub Scan_This_Folder()
    Range("B3").Value = scanthisfolder()
    Call Module1.filefordelete
End Sub

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

VBA კოდიროდესაც მომხმარებელი ირჩევს საქაღალდეს, სკრიპტი კითხულობს ყველა ფაილს შერჩეულ საქაღალდეში და აჩვენებს ფაილის სახელს ბოლო შეცვლილ თარიღთან ერთად. გადაამოწმეთ სია, წაშალეთ რიგები, თუ გსურთ შეინარჩუნოთ ფაილი და შემდეგ დააწკაპუნეთ ღილაკზე „ფაილების წაშლა“. სკრიპტი ახლა ამოიცნობს ბოლო გამოყენებულ მწკრივს და წაშლის ფაილებს, რომლებიც კითხულობენ ფაილის გზას ფურცლიდან.

შეასწორეთ იგი

ამ დროისთვის, სკრიპტი სკანირებს ფაილებს არჩეულ საქაღალდეში. თუ არჩეულ საქაღალდეში არის ქვესაქაღალდეები, სკრიპტი ვერ შეძლებს მის სკანირებას. თქვენ შეგიძლიათ შეცვალოთ სკრიპტი, რათა დაასკანიროთ ყველა ქვესაქაღალდე root საქაღალდეში და ასევე შექმნათ ახალი სვეტი ფაილების „ბოლო ცვლილების თარიღის“ შესადარებლად მიმდინარე თარიღთან და აჩვენოთ დღეები. შემდეგ შეგიძლიათ შეცვალოთ სკრიპტი, რომ ავტომატურად წაშალოთ ფაილები დღეების რაოდენობის მიხედვით. მიუხედავად იმისა, რომ სკრიპტი იყენებს Microsoft-ის ფაილების სკრიპტირების ტექნიკას, ფაილის თვისებებს დაზიანებული xlsx ფაილების მოძიება შეუძლებელია.

ავტორი შესავალი:

ნიკ ვიპონდი არის მონაცემთა აღდგენის ექსპერტი DataNumen, Inc., რომელიც მსოფლიო ლიდერია მონაცემთა აღდგენის ტექნოლოგიებში, მათ შორის სიტყვის აღდგენა და Outlook-ის აღდგენის პროგრამული პროდუქტები. დამატებითი ინფორმაციისთვის ეწვიეთ www.datanumen. ერთად.

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

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