VBA 템플릿에서 차트 워크 시트 복사


1

매크로에서 템플릿으로 사용할 워크 시트 차트가 있습니다. 시트를 복사하여 차트 형식의 개체에 할당하려고하지만 작동하지 않습니다.

코드 아래에는 차트 시트를 만들거나 복사하기위한 두 줄의 작업 코드가 있습니다.

문제는 마지막 코드 줄에서 비롯됩니다. 시트를 복사하지만 다음 줄로 넘어 가기 전에 오류가 발생합니다 (오류 424 객체 필요).

누구나 이것이 왜 일어나는 지와 한 줄에 시트를 할당하는 해결책을 설명 할 수 있습니까?

지금은 내 솔루션은 템플릿을 복사 한 다음 WS_chart3을 activesheet로 설정하고,이를 피할 수 있다면 활성 시트에 대한 참조가 마음에 들지 않습니다.

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

답변:


2

한 가지 확실한 문제는 Copy 메서드가 아무 것도 반환하지 않는 개체를 반환하지 않으므로 먼저 복사본을 만든 다음 새 시트를 가져 와서 변수에 할당해야한다는 것입니다.

네가 할 수 있다고 생각해.

Dim SheetBeforeChart3 As Long

SheetBeforeChart3 = Sheets.Count
Sheets("template").Copy After:=Sheets(SheetBeforeChart3)

Set WS_chart3 = Sheets(SheetBeforeChart3 + 1)

나는 Excel VBA를 실제로 알지 못한다. 다른 문제가있을 수도있다.


네가했던 것과 비슷한 것이 네. template.Copy After:=Sheets(Sheets.Count) Set WS_chart = ActiveSheet 귀하의 방법은 활성 시트에 의존하지 않는 이점이 있습니다. 다른 제안 사항이 있는지 확인하는 데 약간 시간이 더 걸릴 것입니다.
gtwebb
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.