将活动工作表传递给子例程

时间:2015-12-15 22:14:52

标签: excel vba excel-vba

在Excel 2013中,我有一个工作表(名为" ChartSheet"),它有六个图表。我试图在工作表中的任何更改时自动设置每个图表的Y轴的最小值和最大值。每个图表的最小值和最大值的值包含在命名范围内,特定于ChartSheet工作表,称为rng_MaxAxisrng_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

我认为这是由于Excel不知道哪个工作表传递给FormartCharts子例程。如何将活动工作表传递给FormatCharts子例程?

0 个答案:

没有答案