Cara Menghapus Lajur Batch dalam Beberapa Buku Kerja Excel

Kongsi Sekarang:

Adalah sangat biasa untuk melihat orang menyimpan data sulit dalam buku kerja Excel. Apabila buku kerja ini mesti dikongsi dengan rakan atau rakan lain, penghapusan manual adalah satu-satunya pilihan yang ada. Walau bagaimanapun, dengan artikel ini, anda akan belajar cara menghapus lajur rahsia atau lajur yang tidak diingini dengan cepat dari pelbagai buku kerja.

Muat Turun Sekarang

Sekiranya anda mahu starUntuk menggunakan perisian secepat mungkin, maka anda dapat:

Muat turun Perisian Sekarang

Jika tidak, jika anda mahu DIY, anda boleh membaca kandungannya di bawah.

Mari Siapkan GUI

Seperti yang ditunjukkan dalam gambar, ganti nama Lembaran 1 sebagai "ControlPanel". Dengan menggunakan bentuk, kami akan menambah Butang pada helaian ini untuk membuatnya muncul sebagai GUI (Antaramuka Pengguna Grafik) untuk alat ini. Kami memerlukan tiga bidang pada GUI ini. Field1 adalah untuk memaparkan buku kerja yang dipilih oleh pengguna. Medan 2 adalah untuk memaparkan lajur dari buku kerja yang dipilih sebagai drop down. Medan 3 adalah senarai lajur yang harus dikeluarkan dari buku kerja.Siapkan GUI

Bagaimana ia berfungsi?

Kod VBAProsedur p_fpick membolehkan pengguna menyemak imbas dan memilih fail Excel. Sebaik sahaja fail Excel dipilih, skrip akan membaca nama lajur dari Sheet1 dan nama-nama ini dipaparkan sebagai drop down. Prosedur "Add_Column" akan membolehkan pengguna menambahkan nama lajur yang dipilih dari drop-down untuk menambahkan ke senarai lajur yang harus dihapus. Prosedur terakhir "Delete_Columns" akan membuka buku kerja yang disenaraikan di bawah bidang "Pilih buku kerja" dan akan membuang semua lajur yang dipilih. Setelah dihapuskan, buku kerja akan disimpan dan ditutup.

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

Ketatkannya

Setakat ini, skrip ini hanya mengendalikan satu buku kerja. Tetapi menggunakan kaedah baris terakhir yang digunakan, anda boleh membuat makro mengendalikan beberapa buku kerja dalam mod kumpulan. Namun, skrip tidak dapat membuka a Excel rosak buku kerja.

Pengenalan Pengarang:

Nick Vipond adalah pakar pemulihan data di DataNumen, Inc., yang merupakan pemimpin dunia dalam teknologi pemulihan data, termasuk pemulihan kata dan produk perisian pemulihan prospek. Untuk maklumat lebih lanjut, lawati www.datanumen.com.

Kongsi Sekarang:

Ruangan komen telah ditutup.