2016-12-06 1 views
0

아래 표를 Excel에서 다른 파일 이름과 경로로 사용하는 경우이 암호를 지정하십시오. 모든 엑셀 워크 북에 암호를 어떻게 할당합니까? 는VBA 코드 - 다른 파일에 다른 암호를 지정하십시오.

Excel file

내가 사용할 수있는 VBA 코드의 대부분을 발견 등 ... 셀 B2에서 파일 경로가 셀 B3에서 파일 경로가 C3에 암호를 지정해야 C2에 암호를 할당해야합니다 말할 수 있습니다 주로 같은 폴더 아래의 모든 파일에 하나의 단일 비밀번호를 지정하는 것과 관련되어 있지만 1000 개 이상의 파일을 다른 비밀번호로 지정해야하며 나중에 모든 비밀번호를 제거해야합니다. VBA로 할 수 있습니까?

죄송합니다. 저는 VBA에 완전히 익숙하지 않아 업무상의 필요성 때문에 탐험을 시작합니다.

감사합니다.

+1

VBA는 행을 반복하고 각 파일을 열고 해당 암호로 저장 한 다음 마지막으로 파일을 닫습니다. 여기에는 너무 복잡한 것이 하나도 없습니다. – FDavidov

+0

@FDavidov 감사합니다! 모든 파일에 하나의 암호를 폴더에 할당하는 코드를 찾을 수 있습니다. 하지만 난 내 scanario에 맞게 변경하는 방법을 몰라. –

답변

0

두 개의 변수를 선언 최종 하위 다른 암호.

  1. 는 사실, 당신이 (암호를 설정하려는 파일의 전체 이름을 빌드 :

    그런 다음, 당신은 단지에 당신이해야하는 하나 개의 루프 (그리고이)가 필요합니다 귀하의 예제의 열 B)에서,

  2. 이 파일을 귀하의 예제에서 (열 C)에 사용하는 데 필요한 암호

  3. 열기 이름 추출한 파일을 가져

  4. 압축을 푼 암호와 함께 저장

  5. 파일을 닫습니다.

검색된 파일 이름이 비어지면 루프가 종료되어야합니다.

이 설명은 복잡 할 수도 있지만 매우 간단합니다. 그냥 몇 가지 시도를 해보면 혼자서 무언가를 만드는 것에 만족할 것입니다.

힌트 : Excel의 VB 편집기를 사용하면 중단 점을 설정하여 실행을 중단하고 변수 값을 검사 할 수 있습니다. 이것은 또한 당신이하고있는 일을 더 잘 이해할 수 있도록 도울 것이고, 어떤 것이 작동하지 않는다면, 무엇이 잘못되었는지를 빨리 알 수 있습니다.

마지막으로, GOOD LUCK !!!!

+0

정말 고마워 !! 당신 말이 맞아요! 나는 직접 코드를 만드는 법을 배워야한다! 나는 너의 끝 및 지시를 내일 볼 것이다! (이제는 내 도시에서 자정입니다!) –

+0

즐거운 휴식과 새롭게 태어난 에너지로 당신이 깨어나기를 기원합니다. 당신이 필요로하는 모든 것이 이미 게시 한 코드에 있기 때문에 그것을 관리 할 것이라고 확신합니다. 그런데 내 게시 된 답변으로 인해 도움이되었다고 생각하면 답변을 남기고 답변으로 표시 할 수 있습니다 (답변 왼쪽에있는 "V"를 클릭하십시오). 안녕히 주무세요!!! – FDavidov

0

@FDavidov

감사합니다! 모든 파일에 하나의 암호를 폴더에 할당하는 코드를 찾을 수 있습니다. 하지만 난 내 scanario에 맞게 변경하는 방법을 몰라. 아무도 내가 어떻게 바꿔야한다고 조언 할 수 있니? 감사!!!

공공 하위 addPassword() 희미한 FSO 객체와 객체 희미한 폴더, 객체로 객체 희미한 WB로 하위 폴더로

Set FSO = CreateObject("Scripting.FileSystemObject") 
folderPath = ActiveSheet.Range("C2").Value 
pwd = ActiveSheet.Range("C3").Value 
Set folder = FSO.GetFolder(folderPath) 

With Application 
    .DisplayAlerts = False 
    .ScreenUpdating = False 
    .EnableEvents = False 
    .AskToUpdateLinks = False 
End With 

For Each wb In folder.Files 
    If Right(wb.Name, 3) = "xls" Or Right(wb.Name, 4) = "xlsx" Or Right(wb.Name, 4) = "xlsm" Then 
     Set masterWB = Workbooks.Open(wb) 
     ActiveWorkbook.SaveAs Filename:=Application.ActiveWorkbook.FullName, Password:=pwd 
     ActiveWorkbook.Close True 
    End If 
Next 
For Each subfolder In folder.SubFolders 
    For Each wb In subfolder.Files 
     If Right(wb.Name, 3) = "xls" Or Right(wb.Name, 4) = "xlsx" Or Right(wb.Name, 4) = "xlsm" Then 
      Set masterWB = Workbooks.Open(wb) 
      ActiveWorkbook.SaveAs Filename:=Application.ActiveWorkbook.FullName, Password:=pwd 
      ActiveWorkbook.Close True 
     End If 
    Next 
Next 
With Application 
    .DisplayAlerts = True 
    .ScreenUpdating = True 
    .EnableEvents = True 
    .AskToUpdateLinks = True 
End With 

하나는 파일 이름 동안 보유 할

+0

VBA에 새로 도입 된 것이 아니라 프로그래밍 전체에 대해 이해해야합니까? 같은 암호로 모든 벌금을 부과하는 이유는 분명합니다. 암호를 각 파일에 대해 수행하는 대신 한 번만 (게시 된 코드의 세 번째 줄) 가져 오는 것입니다. 코드는 하위 폴더로 이동합니다 (예제에 따르면, 귀하의 경우는 아닙니다). – FDavidov

+0

@FDavidov 예 유감스럽게도 영어가 모국어가 아닌 원어민이므로 직접 설명하지 않았습니다 ... 나는 VBA에 처음 관심이 없습니다. 사실 VBA에 대한 단서가 없습니다. Google에서 일하고 싶기 때문에 밤새도록 검색 작업을했습니다. 나는이 시나리오에 맞지 않는다는 것을 알았지 만, 내 시나리오에 더 잘 맞도록 변경하는 법을 모릅니다. –

+0

코드를 만들 수는 있지만, 아무것도 배울 수는 없습니다. 대신 몇 분 안에 게시 할 답변의 가이드 라인을 알려 드리겠습니다. 당신이 내 접근 방식을 받아들 길 바란다 (적어도 이것이 내 믿음이기 때문에), 당신은 당신이 원하는 것을 얻게 될뿐만 아니라 이런 종류의 일들이 어떻게 이루어지는지를 배울 것이다. – FDavidov

관련 문제