Excel给了我
运行时错误'-2147467259(80004005):方法'Maximumscale' 对象'轴'失败
但仅限于我保护了纸张
现在,我在ThisWorkbok
excel对象上也有unprotect代码,如下所示:
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
这段代码有什么不寻常之处吗? 这一切都发生在同一张纸上,我有它所以允许宏运行所以发生了什么? 这是一个瀑布条形图,这就是为什么我首先需要这个以便完全披露。
提前致谢。
答案 0 :(得分:2)
如果将表单保护配置为禁止编辑,则无法修改受保护的表单:无论您是用户还是VBA过程都没有区别:您需要取消保护表单,然后才能对其进行任何更改它:
Dim wasProtected As Boolean
If theSheet.ProtectionMode Then
wasProtected = True
theSheet.Unprotect '...args...
End If
'modify everything you need to modify
If wasProtected Then theSheet.Protect '...args...
答案 1 :(得分:1)