programing

Excel이 워크시트_Change before Workbook_Before Save를 실행하지 않도록 하는 방법은 무엇입니까?

javajsp 2023. 6. 18. 12:11

Excel이 워크시트_Change before Workbook_Before Save를 실행하지 않도록 하는 방법은 무엇입니까?

업데이트: 문제 해결됨 내 동료가 핸드폰을 바꾸고 있었어요Workbook_BeforeSave()이벤트를 비활성화하지 않음, 따라서 트리거링Worksheet_Change()그래, 바보야, 하지만 적어도 우리 잘못이지 엑셀의 잘못은 아니야.

엑셀에서 Ctrl+S를 누를 때마다Worksheet_Change()이전에 해고됨Workbook_BeforeSave()모든 이벤트를 억제하지 않고 VBA 코드를 사용하여 이 동작을 억제할 수 있습니까?Application.EnableEvents = false)?

제가 뭘 하든 상관없이 이런 일이 벌어집니다.콤보박스와 비슷한 문제가 있는 사람에 대해 읽었지만 콤보박스를 아직 편집하지 않았습니다.Worksheet_Change()저장하기 전에 항상 불이 납니다.

아이디어 있어요?안에 있는 코드를 우회하는 방법을 알아내려는 것뿐입니다.Worksheet_Change()문서가 저장될 때, 이 코드는 워크북이 저장될 때가 아니라 사용자가 실제로 무언가를 변경할 때만 실행되도록 되어 있기 때문입니다.저축은 결코 변하지 않습니다...

그것은 우리 쪽의 코딩 실수였습니다.

동료가 이벤트를 비활성화하지 않고 Workbook_BeforeSave() 중에 셀을 변경하여 Workbook_Change()를 트리거했습니다.

해결책은 쉬웠습니다.Workbook_BeforeSave()에서 다음을 수행합니다.

Application.EnableEvents = False
' Some final changes
Application.EnableEvents = True

그리고 그게 다였습니다 :)

글로벌 플래그 변수를 추가합니다.

키를 눌렀을 때 실행되는 기능을 입력하고 CTRL + S 플래그를 true로 설정합니다.

이 플래그가 참이면 workshot_change 이벤트가 단락되어야 합니다.

그리고 workbook_aftersave는 다시 false로 변경해야 합니다.

언급URL : https://stackoverflow.com/questions/8819394/how-to-stop-excel-from-firing-worksheet-change-before-workbook-beforesave