【发布时间】:2018-05-25 14:58:49
【问题描述】:
Excel 给了我
运行时错误'-2147467259 (80004005):方法'Maximumscale' 对象“轴”失败
但只有当我的工作表受到保护时。
现在,我在ThisWorkbok excel 对象上也有取消保护代码,如下所示:
Sheets("Charted").Protect Password:="123", UserInterFaceOnly:=True
我的代码如下:
Sub SetAxes()
Dim objCht As ChartObject, AxisOne As Long, AxisTwo As Long, RangeMin As Double
Dim RangeMax As Double, rng As Range
For Each objCht In Sheets("Charted").ChartObjects
AxisOne = Sheets("Charted").Range("$H$32").Value
AxisTwo = Sheets("Charted").Range("$H$6").Value
Set rng = Sheets("Charted").Range("H7:H31")
RangeMin = Application.WorksheetFunction.Min(rng)
RangeMax = Application.WorksheetFunction.Max(rng)
With objCht.Chart
With .Axes(xlValue)
If AxisOne > AxisTwo Then
.MaximumScale = AxisOne + 2000000 + RangeMax
.MinimumScale = AxisTwo - 2000000
Else
.MaximumScale = AxisTwo + 500000 - RangeMin 'Error Occurs on this line
.MinimumScale = AxisOne - 2000000
End If
End With
End With
Next objCht
Call HideZeroRows
End Sub
这段代码有什么不寻常的地方吗? 这一切都发生在同一张纸上,我有它,所以允许运行宏,这是怎么回事? 这是一个瀑布条形图,这就是为什么我首先需要它来全面披露。
提前致谢。
【问题讨论】:
-
您必须取消保护、编辑图表并重新保护,或者允许在保护设置中编辑对象。
-
UserInterFaceOnly仅适用于当前会话。关闭并重新打开工作簿,此设置将被忽略,因此 VBA 无法对受保护的对象进行操作。