2012-12-06 2 views
0

Excel 문서의 백업 복사본을 만드는 매크로가 있습니다.
문서를 저장할 때마다 매크로가 자동으로 실행되도록하려면 어떻게해야합니까? 여기 특정 간격으로 Excel 파일을 다른 파일에 저장하는 스크립트는 어떻게 작성합니까?

코드입니다 :

Sub BUandSave() 
    'Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) 
    'Saves the current file to a backup folder and the default folder 
    'Note that any backup is overwritten 
Application.DisplayAlerts = False 
ActiveWorkbook.SaveCopyAs Filename:="G:\1 Processing\Christine\" & _ 
ActiveWorkbook.Name 
ActiveWorkbook.save 
Application.DisplayAlerts = True 
End Sub 

내가 온라인에서이 코드를 가지고와 VBA와 제로 기술을 가지고, 도와주세요!

편집 : 답변, 통찰력을 주셔서 감사합니다. 이제 나는 또 하나의 질문을 가지고있다. 백업 복사본이 다른 이름으로 저장되도록하려면 어떻게해야합니까? 나는 파일을 편집하는 사람이 의도적으로 잘못된 것을 편집하려고하지 않도록 편집하거나 삭제하지 않는 것과 같은 것을 만들고 싶습니다. 코드에 어떻게 추가합니까? 당신의 ThisWorkbook 모듈 위의 코드 (Alt + F11을 VBA 편집기로 당신을 얻을 것이다)

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) 
'Saves the current file to a backup folder and the default folder 
'Note that any backup is overwritten 

Application.DisplayAlerts = False 
ActiveWorkbook.SaveCopyAs Filename:="G:\1 Processing\Christine\" & ActiveWorkbook.Name 
ActiveWorkbook.Save 
Application.DisplayAlerts = True 
End Sub 

장소 :

답변

2

대답은 당신이 게시 코드입니다. Workbook_BeforeSave은 통합 문서 이벤트입니다. 통합 문서가 저장되기 전에 이벤트가 트리거 될 때마다이 코드가 실행됩니다. Excel의 이벤트는 멋지고 코드 슬링 어를위한 강력한 도구입니다. 질문에 게시 한 코드가 더 이상 필요하지 않습니다.

+0

사실입니다.하지만 'Workbook_BeforeSave' 이벤트에 넣으려는 경우 더 명백하기 때문에'ActiveWorkbook' 대신'ThisWorkbook'을 사용해야합니다. 'Cancel' 부울을 false로 업데이트하지 않는 한, 서브가 끝나자 마자 통합 문서가 저장되기 때문에'ActiveWorkbook.Save'가 필요 없습니다. –

+0

우! 그것은 효과가 있었다. 정말 고마워! – christine

+0

크리스틴, 예! 다행 했어. 답변에 동의 함을 표시하십시오. http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work –

관련 문제