피벗 차트를 새로 고칠 때마다 서식이 손실됩니다. 따라서 페이지를 새로 고칠 때마다 그래프 형식을 다시 지정하는 VBA 코드가 있습니다.
Private Sub Worksheet_Calculate()
ActiveSheet.ChartObjects("Chart 3").Activate
ActiveChart.FullSeriesCollection(1).ChartType = xlColumnStacked
ActiveChart.FullSeriesCollection("Limit").ChartType = xlLine
ActiveChart.Deselect
End Sub
그래프 유형은 콤보형이며, "한계"라는 시계열을 제외한 모든 시계열이 누적됩니다. 위의 코드는 "Limit" 시리즈가 데이터 세트에 있는 한 작동합니다. 사용자가 데이터 세트에서 시계열 제한을 제거하는 필터나 슬라이서를 선택하면 Excel에서 오류가 발생합니다.
형식을 선택적으로 만들어야 합니다.
시리즈가 존재하는지 테스트해 보았습니다. 그러나 그것은 제대로 작동하지 않습니다.
Private Sub Worksheet_Calculate()
ActiveSheet.ChartObjects("Chart 3").Activate
ActiveChart.FullSeriesCollection(1).ChartType = xlColumnStacked
If ActiveChart.FullSeriesCollection("Limit") Is Nothing Then "do nothing here"
Else ActiveChart.FullSeriesCollection("Limit").ChartType = xlLine
End If
ActiveChart.Deselect
End Sub
VBA가 "한계" 시리즈가 존재하지 않는 경우 이를 건너뛰도록 하려면 어떻게 해야 합니까?
답변1
한 가지 방법은 오류를 무시하는 것입니다. 당신은 그것을 할 수 있습니다오류 시성명:
Private Sub Worksheet_Calculate()
On Error GoTo Finish
Dim Nope As Integer
ActiveSheet.ChartObjects("Chart 3").Activate
ActiveChart.FullSeriesCollection(1).ChartType = xlColumnStacked
ActiveChart.FullSeriesCollection("Limit").ChartType = xlLine
ActiveChart.Deselect
Finish:
On Error GoTo 0
End Sub
On Error GoTo 0
모든 오류 처리를 취소하고 정상적으로 관리하라고 지시합니다 .
On Error Resume Next
다음 대신 상단에서 사용할 수도 있습니다 GoTo Finish
.
Private Sub Worksheet_Calculate()
On Error Resume Next
Dim Nope As Integer
ActiveSheet.ChartObjects("Chart 3").Activate
ActiveChart.FullSeriesCollection(1).ChartType = xlColumnStacked
ActiveChart.FullSeriesCollection("Limit").ChartType = xlLine
ActiveChart.Deselect
End Sub