본문 바로가기
Tip

시트 복사시 이벤트 삭제하기

by 일등미노왕국 2023. 2. 4.

이벤트가 걸린 시트를 복사할 때 복사된 시트에도 이벤트가 걸려서 시트들 끼리 이벤트가 꼬일 수도 있기에 복사된 시트의 이벤트를 제거해 주는 편이 낫다.

 

한달에 한번 또는 몇일에 한번 이라면 그때마다 시트 이벤트를 삭제하면 되겠지만, 하루에도 수십번 이일을 반복한다면 우리 VBA맨들은 참지않지!!

 

본인 검색 능력으로는 살짝 모자라서 같은 방 크루들에게 질문을 했고, 이에 시훈아빠님의 성스러운 응답이 있어 소개한다.

sheets.copy after:=sheets(sheets.count)
str = Activesheet.CodeName
                       
With ThisWorkbook.VBProject.VBComponents(str).CodeModule
        .DeleteLines 1, .CountOfLines
End With|

코드 설명은  현재시트를 복사해서 기존에 있는 시트들의 맨마지막에 복사한 시트를 위치시키고, 그 시트의 CodeName을 str변수에 담아서 이 시트의 이벤트를 삭제하는 구문이다. 

 

외우려 하지말고 필요할때 이곳으로 와서 복붙하면 된다.

이게 너와나의 연결 고리이다.

 

댓글