매크로에서 템플릿으로 사용하고 싶은 워크시트 차트가 있습니다. 시트를 복사하여 차트 유형의 개체에 할당하려고 하는데 작동하지 않습니다.
아래 코드에는 차트 시트를 생성하거나 복사하는 두 줄의 작업 코드가 있습니다.
문제는 코드의 마지막 줄에서 발생합니다. 시트를 복사했지만 다음 줄로 이동하기 전에 오류가 발생했습니다(오류 424 개체 필요).
이런 일이 발생하는 이유와 시트를 한 줄에 할당하는 솔루션을 설명할 수 있는 사람이 있습니까?
지금 내 해결책은 템플릿을 복사한 다음 WS_chart3을 활성 시트로 설정하는 것입니다. 피할 수 있다면 활성 시트에 대한 참조를 좋아하지 않습니다.
Sub test()
Dim WS_chart2 As Chart
Dim WS_chart3 As Chart
'adds chart sheet but doesn't use a template
Set WS_chart2 = Charts.Add(After:=Sheets(Sheets.Count))
'adds sheet but doesn't asign in to variable WS_chart2
Sheets("template").Copy After:=Sheets(Sheets.Count)
'adds chart sheet but then errors out
Set WS_chart3 = Sheets("template").Copy(After:=Sheets(Sheets.Count))
End Sub
답변1
한 가지 확실한 문제는 Copy 메서드가 개체를 반환하지 않는다는 것입니다(아무 것도 반환하지 않음). 따라서 먼저 복사본을 만든 다음 새 시트를 가져와 변수에 할당해야 합니다.
그냥 하시면 될 것 같아요
Dim SheetBeforeChart3 As Long
SheetBeforeChart3 = Sheets.Count
Sheets("template").Copy After:=Sheets(SheetBeforeChart3)
Set WS_chart3 = Sheets(SheetBeforeChart3 + 1)
저는 Excel VBA를 잘 모르지만 다른 문제가 있을 수 있습니다. 이것이 여러분에게 조금이라도 도움이 되기를 바랍니다.