我有一个图表,在x轴上有使用Excel VBA的最小值和最大值。
Set rng = ActiveWorkbook.Worksheets("Project Data").Range("A5:A202")
minimum = Application.WorksheetFunction.Min(rng)
maximum = Application.WorksheetFunction.Max(rng)
With ActiveSheet.ChartObjects("Initiation").Chart
With .Axes(xlCategory)
.MinimumScale = minimum
.MaximumScale = maximum
End With
With .Axes(xlValue, xlPrimary)
.MinimumScale = 0
.MaximumScale = 100
End With
End With
第二个内部" With"使用" xlValue"工作正常。
第一个内部" With"使用" xlCategory"导致运行时错误:Method" MinimumScale"对象" Axis"失败。
我无法弄清问题是什么。有谁知道它是什么?
非常感谢。
答案 0 :(得分:0)
相应地纠正这些行
Dim minimum As Double: minimum = Cdbl(Application.WorksheetFunction.Min(rng))
Dim maximum As Double: maximum = Cdbl(Application.WorksheetFunction.Max(rng))
根据您的代码,该方法因类型不匹配而失败。 minimum
和maximum
声明没有Dim
,这使得它们是变体而不是双数据类型,并且根据MSDN的方法是读/写双。
在VBA编辑器中添加Option Explicit
,这样您将收到编译器错误而非运行时错误。这意味着如果缺少dim
,您将收到提醒。
在代码中只添加Option Explicit
一次。它必须在子程序之外。