2014-10-02 265 views
1

我是宏的新手。事实上,这是我的第一个宏。我正试图执行这个宏。我正面临运行时错误。遇到运行时错误'438'对象在Excel宏中不支持此属性或方法

Option Explicit 

Sub ScaleAxes() 
    With ActiveChart.Axes(xlCategory, xlPrimary) 
    .MaximumScale = ActiveSheet.Range("I17").Value 
    .MinimumScale = ActiveSheet.Range("I18").Value 
    .MajorUnit = ActiveSheet.Range("I19").Value 
    End With 
End Sub 

基本上我的任务,我试图动态地根据我的表的最大值和最小值改变线路图的x值轴距。所以我使用min和max函数从我的表格中计算出最大值和最小值,并通过I17:I19传递这些值。不知道我有多正确。

+0

I17,I18和I19是最小x轴距谷,最大x轴距值 – user2919277 2014-10-02 10:08:14

+1

哪条线是你收到的错误? – Gareth 2014-10-02 10:09:15

+0

你有I17,I18和I19的价值吗?我的意思是,你确定他们不是空的吗? – 2014-10-02 10:27:13

回答

0

我相信你遇到的问题是由于你试图在不支持它们的类别轴上设置最小值和最大值。如果您将xlCategory更改为xlValue那么它应该工作(在具有值轴而不是类别轴的图表上)。

代码:

Option Explicit 

Sub ScaleAxes() 
    With ActiveChart.Axes(xlValue, xlPrimary) 
    .MaximumScale = ActiveSheet.Range("I17").Value 
    .MinimumScale = ActiveSheet.Range("I18").Value 
    .MajorUnit = ActiveSheet.Range("I19").Value 
    End With 
End Sub 
+0

谢谢你。那只是完美的答案。 – user2919277 2014-10-02 10:57:39

相关问题