programing

Excel에서 워크북 끝에 시트 추가(정상적인 방법이 작동하지 않습니까?)

sourcejob 2023. 5. 29. 10:38
반응형

Excel에서 워크북 끝에 시트 추가(정상적인 방법이 작동하지 않습니까?)

워크북의 마지막 위치에 새 시트를 추가하는 데 사용하는 VBA 코드입니다.

mainWB.Sheets.Add(After:=Sheets(Sheets.Count)).Name = new_sheet_name

저는 이 사이트에서 비슷한 질문에서 이것을 보았습니다.작동하지 않습니다.

저는 이것을 반복해서 하고 각 시트는 시트의 두 번째 위치에 추가됩니다.2장의 시트가 영구적으로 존재합니다(정보 및 요약). 그리고 나서 "테스트" 1 ~ 5라는 5장을 추가하기 전에 먼저 추가합니다.저는 항상 다음과 같은 순서로 시트를 정리합니다.

Info, sheet5, sheet4, sheet3, sheet2, sheet1, Summary

하지만 제가 기대했던 것은 다음과 같습니다.

Info, Summary, sheet1, sheet2, sheet3, sheet4, sheet5

(루프가 예상되는 순서대로 생성되므로 문제가 발생하지 않습니다.)

시작하기 전에 요약 시트와 정보 시트를 바꾸면 작업이 완료되면 반대 위치에 있습니다.

내가 뭘 잘못하고 있는 거지?

사용해 보세요.

mainWB.Sheets.Add(After:=mainWB.Sheets(mainWB.Sheets.Count)).Name = new_sheet_name
mainWB.Sheets.Add(After:=Sheets(Sheets.Count)).Name = new_sheet_name 

아마 그래야 할 것입니다.

mainWB.Sheets.Add(After:=mainWB.Sheets(mainWB.Sheets.Count)).Name = new_sheet_name 

일반적인 실수는

mainWB.Sheets.Add(After:=Sheets.Count)

오류 1004로 이어집니다.공식 문서에서는 전혀 명확하지 않지만, '이후' 매개 변수는 정수일 수 없으며, 동일한 워크북의 시트를 참조하는 것이어야 합니다.

시트가 참조하는 워크북을 완전히 검증해야 합니다!

 mainWB.Sheets.Add(After:=mainWB.Sheets(mainWB.Sheets.Count)).Name = new_sheet_name

언급URL : https://stackoverflow.com/questions/11456157/adding-sheets-to-end-of-workbook-in-excel-normal-method-not-working

반응형