2016-10-17 4 views
1

포럼을 통해 검색 한 결과 내 문제에 대한 정확한 해결책을 찾을 수 없습니다. 나는 VBA와 코딩에 다소 익숙하지만 VBA 구문에 대해서는 아직 아주 익숙하다. 구문 오류가 발생했을 때 오류가 계속 발생하고 개체가 범위를 벗어났습니다. 선택 기반 동작에서 벗어나고 싶습니다. 시트에서 특정 차트를 호출하여 데이터 계열의 양을 계산합니다.워크 시트의 차트 차트 시리즈 [이름순]

이 시점에서 나는 단지 실제로 그것을 디버깅 할 수 있었다는 사실을 좌절 시켰습니다. 나는 다양한 조합을 시도하고 아침 내내 인터넷 검색을하고 있으며, 내가 얻는 모든 것은 새롭고 다른 오류 메시지입니다. 그래서 저는 여러분 중 한 명이 제 땜장이보다 더 빠른 해결책을 가지고 있다고 생각했습니다. 어떤 도움도 도움이 될 것입니다, 감사합니다!

Dim SheetName As String 
Dim SC2 As Long 
SheetName = ActiveSheet.Name 'assign the name of the active sheet to the variable 

'Count # of series in chart to find # of loops required 
ActiveWorkbooks.Sheets(Volume CT).ChartObjects(1).Chart.SeriesCollection.Count 
'*^^^THIS IS WHERE THE ERROR OCCURS* 
'Debug.Print ThisWorkbook.Sheets("Time CT").ChartObjects(1).Chart.SeriesCollection.Count 
'Debug.Print ThisWorkbook.Sheets("Temp CT").ChartObjects(1).Chart.SeriesCollection.Count 
+0

당신이 얻을 실제 오류가 무엇입니까? 또한'VolumeCT'는 시트의 이름을 유지합니까 아니면 시트의 실제 이름입니까? – Zac

+0

정확한 코딩을 위해 컴파일 오류가 발생합니다 : 구문. 볼륨 CT는 시트 및 차트의 이름이라고 생각합니다. 그러나이 문제를 해결하기 위해 활성 시트의 이름에 변수를 할당하려고 시도했습니다. 다음 줄에서 변수를 호출했습니다. 아래 참조하십시오 ActiveWorkbooks.Sheets (SheetName) .ChartObjects (Volume CT) .Chart.SeriesCollection.Count 예상 된 분리 자 또는 오류가 발생했습니다. –

+0

'ActiveWorkbooks' >>'ActiveWorkbook' 그리고'Volume CT'는 무엇입니까? ? 그것은 공간이 있기 때문에 변수가 아니기 때문에 그 주위에 따옴표를 넣을 것입니다. –

답변

1
Dim SC2 As Long 

'chartobject method (chart is housed in a regular worksheet) 
SC2 = ActiveWorkbook.Sheets("Volume CT").ChartObjects(1).Chart.SeriesCollection.Count 

'if the chart is on a chart sheet: 
SC2 = ActiveWorkbook.Sheets("Volume CT").SeriesCollection.Count 
+0

그것은 효과가! 감사합니다! 누구나이 글을 읽는 것입니다.이 답은 ChartSheet를 참조하여 연속 컬렉션으로 들어가는 조건을 충족시킵니다. 시트 내의 일반 차트에는 해당되지 않습니다. –

+0

@CoreyChung 두 옵션 모두 적용됩니다. –