在Excel 2013中,我有一个工作表(名为"ChartSheet"),它有六个图表 . 我正在尝试在工作表中的任何更改时自动设置每个图表的Y轴的最小值和最大值 . 每个图表的最小值和最大值的值包含在命名范围内,特定于 ChartSheet
工作表,名为 rng_MaxAxis
和 rng_MinAxis
.
为了实现我的目标,我在ChartSheet表中有以下VBA代码:
Private Sub Worksheet_Change(ByVal Target As Range)
FormatCharts
End Sub
这是我在一个名为 FormatCharts
的模块中的SubRoutine的源代码,其代码是:
Sub FormatCharts()
Dim objCht As ChartObject
Dim maxAxis As Range
Dim minAxis As Range
Set maxAxis = ActiveSheet.Range("rng_MaxAxis")
Set minAxis = ActiveSheet.Range("rng_MinAxis")
For Each objCht In ActiveSheet.ChartObjects
With objCht.Chart
' Value (Y) Axis
With .Axes(xlValue)
For Each maxValue In maxAxis
.MaximumScale = maxValue.Value
Next maxValue
For Each minValue In minAxis
.MinimumScale = minValue.Value
Next minValue
End With
End With
Next objCht
End Sub
任何更改后,我收到以下错误, Compile Error: Variable not found
并指向 maxValue
For Each循环 .
我相信这是由于Excel不知道哪个工作表传递给 FormartCharts
子例程 . 如何将活动工作表传递给 FormatCharts
子例程?