2012-06-29 1 views
1

VBA를 사용하여 통합 문서의 다음 워크 시트를 참조 할 수는 있지만 여러 통합 문서에 매크로를 적용 할 수 있기를 기대하면서 시트 이름을 참조하지 마십시오. .엑셀 차트의 매크로에서 이전 시트 참조

나는 엑셀 차트를 포맷하기위한 엑셀 매크로를 쓰고있다. 차트의 시리즈 제목에서 시리즈 이름을 다음 워크 시트의 셀 참조로 만들고 싶습니다.

ActiveChart.SeriesCollection(1).Name = "='ActiveChart.Next.Select'!$B$1" 

을하지만이 작동하지 않습니다 :

나는 작동하지 않는 경우 다음을 시도했다.

매크로 내에서 워크 시트의 셀을 참조하는 차트의 시리즈 이름 필드를 가져 오는 가장 효과적인 방법은 무엇입니까?

또한 중 하나가 작동하지 않습니다 다음, 시도

:

ActiveChart.SeriesCollection(1).Name = "=Sheets(1)!$B$1" 

이 등등 다음 차트로 구성되는 통합 문서, 시트, 차트, 시트임을 명심하세요 ...

답변

1

당신은

ActiveChart.SeriesCollection(1).Name = "='" & Sheets(ActiveChart.Parent.Parent.Name).Next.Name & "'!B1

  1. Sheets(ActiveChart.Parent.Parent.Name 다음 시트의 이름을 반환이 한 줄을 사용할 수 있습니다.
  2. ' 쌍이 시트 이름을 나타낼 때 중요합니다. My Sheet라는 시트가 My Sheet!B1으로 작동하지 않으면 'My Sheet'!B1
이어야합니다.
0

클래식 Excel 수식 참조 대신 VBA 코드를 넣으려고하는 것처럼 보입니다. 나는 그것을 시험해 보지 못했지만 그것이 효과가 없다는 것을 압제한다. 당신이 셀에 뭔가를 참조 할 경우에 당신은 =, 시트 이름을 가진이 좋은 오래된 명확한 구문의 수식을 만들어야합니다, 같은 셀 주소 뭔가 : 당신은 당신이 공식을 만들 수 VBA를 당연히 사용할 수 있습니다

=Sheet1!A1 

을 그것을 필드에 할당하십시오. 이 코드를보십시오 :

Dim ws As Worksheet 
Dim formula As String 

Set ws = ActiveSheet.Next 
formula = "=" & ws.name & "!A1" 

ActiveChart.SeriesCollection(1).name = formula