On hyvin yleistä nähdä ihmisten tallentavan luottamuksellisia tietoja Excel-työkirjoihin. Kun nämä työkirjat on jaettava muille kollegoille tai ystäville, manuaalinen poisto on ainoa käytettävissä oleva vaihtoehto. Tämän artikkelin avulla opit kuitenkin poistamaan luottamukselliset sarakkeet tai ei-toivotut sarakkeet useista työkirjoista.
Lataa nyt
Jos haluat start käyttää ohjelmistoa mahdollisimman pian, voit:
Muussa tapauksessa voit lukea sisällön alla olevasta sisällöstä.
Valmistellaan käyttöliittymä
Nimeä taulukko 1 uudelleen nimellä “ControlPanel” kuvan osoittamalla tavalla. Muotoja käyttämällä lisätään painikkeet tälle taulukolle, jotta se näkyisi tämän työkalun GUI: na (graafinen käyttöliittymä). Tarvitsemme tässä kentässä kolme kenttää. Kenttä1 näyttää käyttäjän valitseman työkirjan. Kentässä 2 näytetään valitun työkirjan sarakkeet pudotusvalikossa. Kenttä 3 on luettelo sarakkeista, jotka tulisi poistaa työkirjasta.
Miten tämä toimii?

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
Nipistä sitä
Tällä hetkellä tämä komentosarja käsittelee vain yhtä työkirjaa. Mutta käyttämällä viimeksi käytettyä rivimenetelmää, voit saada makron käsittelemään useita työkirjoja erätilassa. Komentosarja ei kuitenkaan voi avata a korruptoitunut Excel työkirja.
Tekijän esittely:
Nick Vipond on tietojen palauttamisen asiantuntija DataNumen, Inc., joka on maailman johtava tietojen palautustekniikoissa, mukaan lukien sanan palautus ja Outlook-palautusohjelmistotuotteet. Lisätietoja osoitteessa www.datanumen.com.
