사람들이 Excel 통합 문서에 기밀 데이터를 저장하는 것은 매우 일반적입니다. 이러한 통합 문서를 다른 동료 나 친구와 공유해야하는 경우 수동 삭제가 사용 가능한 유일한 옵션입니다. 그러나이 문서에서는 여러 통합 문서에서 기밀 열이나 원하지 않는 열을 빠르게 삭제하는 방법을 알아 봅니다.
다운로드
소프트웨어를 최대한 빨리 사용하고 싶으시다면 다음 방법을 이용하실 수 있습니다.
그렇지 않고 DIY를 원한다면 아래 내용을 읽을 수 있습니다.
GUI를 준비합시다
이미지에 표시된대로 Sheet 1의 이름을 "ControlPanel"로 바꿉니다. 모양을 사용하여이 도구에 대해 GUI (그래픽 사용자 인터페이스)로 표시되도록이 시트에 단추를 추가합니다. 이 GUI에는 세 개의 필드가 필요합니다. Field1은 사용자가 선택한 통합 문서를 표시합니다. 필드 2는 선택한 통합 문서의 열을 드롭 다운으로 표시하는 것입니다. 필드 3은 통합 문서에서 제거해야하는 열 목록입니다.
어떻게 진행합니까?

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
그것을 조정
현재이 스크립트는 하나의 통합 문서 만 처리합니다. 그러나 마지막으로 사용한 행 방법을 사용하면 매크로가 일괄 처리 모드에서 여러 통합 문서를 처리하도록 할 수 있습니다. 그러나 스크립트는 손상된 Excel 학습장.
저자 소개 :
Nick Vipond는 데이터 복구 전문가입니다. DataNumen, Inc.는 다음과 같은 데이터 복구 기술 분야의 세계적 리더입니다. 단어 복구 그리고 전망 회복 소프트웨어 제품. 자세한 내용은 WWW.datanumen.COM.