Birden Çok Excel Çalışma Kitabında Sütunları Toplu Olarak Silme

Şimdi paylaş:

İnsanların gizli verileri Excel çalışma kitaplarına kaydettiğini görmek çok yaygındır. Bu çalışma kitaplarının diğer iş arkadaşları veya arkadaşlarla paylaşılması gerektiğinde, mevcut tek seçenek el ile silmedir. Ancak bu makale ile birden çok çalışma kitabından gizli sütunları veya istenmeyen sütunları nasıl hızlı bir şekilde sileceğinizi öğreneceksiniz.

Hemen İndir

Yazılımı mümkün olan en kısa sürede kullanmaya başlamak istiyorsanız, şunları yapabilirsiniz:

Yazılımı Şimdi İndirin

Aksi takdirde, DIY yapmak istiyorsanız aşağıdaki içeriği okuyabilirsiniz.

GUI'yi Hazırlayalım

Resimde gösterildiği gibi Sayfa 1'i "Kontrol Paneli" olarak yeniden adlandırın. Şekilleri kullanarak, bu araç için GUI (Grafik Kullanıcı Arayüzü) olarak görünmesini sağlamak için bu sayfaya Düğmeler eklerdik. Bu GUI'de üç alana ihtiyacımız var. Alan1, kullanıcı tarafından seçilen çalışma kitabını görüntülemek içindir. Alan 2, seçilen çalışma kitabından sütunları açılır menü olarak görüntülemek içindir. Alan 3, çalışma kitabından kaldırılması gereken sütunların listesidir.GUI'yi hazırlayın

Nasıl Çalışır?

VBA Kodup_fpick prosedürü, kullanıcının Excel dosyalarına göz atmasına ve bunları seçmesine izin verir. Bir Excel dosyası seçilir seçilmez, komut dosyası Sayfa1'den sütun adlarını okur ve bu adlar açılır menü olarak görüntülenir. "Add_Column" prosedürü, kullanıcının, silinmesi gereken sütunlar listesine eklemek için açılır listeden seçilen sütun adını eklemesine izin verecektir. "Delete_Columns" son prosedürü, "Çalışma kitabını seç" alanı altında listelenen çalışma kitabını açar ve seçilen tüm sütunları kaldırır. Silme işleminden sonra, çalışma kitabı kaydedilecek ve kapatılacaktır.

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

Çimdikle onu

Şu an itibariyle, bu komut dosyası yalnızca bir çalışma kitabını yönetiyor. Ancak son kullanılan satır yöntemini kullanarak, makronun birkaç çalışma kitabını toplu iş modunda işlemesini sağlayabilirsiniz. Ancak, komut dosyası açamıyor bozuk Excel çalışma kitabı.

Yazar Tanıtımı:

Nick Vipond bir veri kurtarma uzmanıdır. DataNumendahil olmak üzere veri kurtarma teknolojilerinde dünya lideri olan , Inc. kelime kurtarma ve görünüm kurtarma yazılımı ürünleri. Daha fazla bilgi için ziyaret edin www.datanumen.com.

Şimdi paylaş:

Yoruma kapalı.