2012-07-20 3 views
1

암호로 통합 문서를 열고 이벤트를 사용하지 않도록 설정 한 다음 백그라운드에서 시트를 두 번째 파일로 복사하고 저장하는 방법. VBA에서 MS 액세스 및 엑셀 파일로 작업해야합니다.암호로 통합 문서를 여는 방법 이벤트를 사용하지 않도록 설정하는 방법

지금까지 해본 적이 있습니다.

Private Sub TestFunction() 

'strPath = CurrentDb.Properties(0) 
'strPath = Left(strPath, Len(strPath) - Len(Dir(strPath, vbNormal))) & "Temp\" 
Dim CopyFrom As Object 
Dim CopyTo As Object ''Early binding: Workbook 
Dim CopyThis As Object 
Dim xl As Object ''Early binding: New Excel.Application 

Set xl = CreateObject("Excel.Application") 
xl.Visible = True 
Set CopyFrom = xl.Workbooks.Open("D:\A01.xls") 
'CopyFrom.EnableEvents = False 
Set CopyThis = CopyFrom.Sheets(1) ''Sheet number 1 
Set CopyTo = xl.Workbooks.Open("D:\PM1.xls") 
CopyThis.Copy After:=CopyTo.Sheets(CopyTo.Sheets.Count) 
CopyFrom.Close 
End Sub 

이는 Excel이 열리고, 나는 패스 사본이 두 번째 파일에 시트의 입력합니다.

하지만 배경에서 암호를 전달하고 시트를 삭제하고 두 번째 파일을 모두 백그라운드로 저장해야합니다. 또한 내가 좋아하는, 나에게 묻지 않고, 시트를 삭제해야합니다

CopyTo.Sheets("Sheet1").Delete 

감사합니다

+0

xl.Workbooks.Open 암호를 취할 수 있습니다 : 두 번째 질문에 대해 경고

없이 삭제

Sub OpenMyFile() Workbooks.Open Filename:="Path", Password:="OpenFile", WriteResPassword:="WriteFile" End Sub 

, 여기 당신이 할 수있는 것입니다 매개 변수 및 파일 이름으로 –

+0

설정 CopyFrom = xl.Workbooks.Open ("D : \ A01.xls", "admin") Is 작동 안함. – Adrian

+0

delete 문은 시트 이름이 실제로 "Sheet1"인 경우에만 작동합니다. 그렇지 않으면 첫 번째 시트를 시트로 참조하십시오 (1) 이것은 단지 부작위 일뿐입니다. – Trace

답변

8

암호 문제

(그것이 "열린 파일"비밀번호가 어떠했는지를 확인하기 위해주의 password 매개 변수) 또는 "파일 수정"암호 (WriteResPassword 매개 변수).

뭔가 같은 :

Application.DisplayAlerts=False 
CopyTo.Sheets("Sheet1").Delete 
Application.DisplayAlerts=True 
+0

VBA 코드에서 암호가있는 로그인 창입니다. – Adrian

+0

문제를 이해할 수 없습니다. 시도해보고 잘못된 점을 알려주십시오. Btw, 삭제를위한 해결책으로 내 대답을 편집했습니다. – JMax

관련 문제