Excel VBA:编辑受保护工作表上图表的轴

Excel VBA:编辑受保护工作表上图表的轴,vba,excel,Vba,Excel,我已经尝试了很长一段时间,但失败了 我有一个excel表格,用户可以在其中复制数据。工作表中已包含一个自动填充输入数据的图表。 有一个按钮,它从表(M8和M9)中获取值,用以下makro缩放图表: With ActiveSheet.ChartObjects("Diagramm 2").Chart .Axes(xlValues, xlPrimary).MaximumScale = Sheets("Sheet1").Range("M8").Value .Axes(xlValues,

我已经尝试了很长一段时间,但失败了

我有一个excel表格,用户可以在其中复制数据。工作表中已包含一个自动填充输入数据的图表。 有一个按钮,它从表(M8和M9)中获取值,用以下makro缩放图表:

With ActiveSheet.ChartObjects("Diagramm 2").Chart

    .Axes(xlValues, xlPrimary).MaximumScale = Sheets("Sheet1").Range("M8").Value
    .Axes(xlValues, xlPrimary).MinimumScale = Sheets("Sheet1").Range("M9").Value

End With
这给了我错误“对象的方法‘轴’”\u图表“已失败”

图纸受到保护,但选中了“保护”对话框中的“编辑对象”选项。 该图也被设置为不受保护

除了围绕代码使用

ActiveSheet.Unprotect
'code here
ActiveSheet.Protect
因为密码可能会在以后更改,用户不必编辑vba代码

任何想法或意见都将不胜感激。 谢谢
Paul

我发现的一个可能的解决方法是 (网址:):

添加另一张未受保护但隐藏的图纸(“图纸2”)。 在此工作表中,根据“Sheet1”中的数据创建图表。 从“图纸2”复制图表,并在“图纸1”中粘贴->图像。 现在选择图像并添加一个类似“=Sheet2!A1:G12”的公式。这将显示您在A1:G12中的“Sheet2”上看到的内容(当然,您可能需要移动图表和/或更改范围)。 将makro从上面编辑为:

Sheets("Sheet2").ChartObjects("Diagramm 2").Activate
ActiveChart.ChartArea.Select
ActiveChart.Axes(xlValue).Select

With ActiveChart.Axes(xlValue)
   .MaximumScale = Sheets("Sheet1").Range("M8").Value
   .MinimumScale = Sheets("Sheet1").Range("M9").Value
End With

当您现在更改(隐藏)工作表“Sheet2”中的图表时,“Sheet1”上的图像应自动更新。

这在Excel 2003中使用,但在Excel 2016中被破坏(可能从Excel 2007开始破坏)。