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

我一直在努力尝试,现在已经有一段时间了

我有一个Excel表格,用户可以在其中复制数据。 工作表中已经包含一个自动填充input数据的图表。 有一个button,从工作表中取得值(在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 

这给了我错误的方法'轴'的对象“_Chart”失败“。

工作表受到保护,但在保护对话框中select“编辑对象”选项。 该图也被设置为不受保护。

除了围绕代码之外,还有什么办法吗?

 ActiveSheet.Unprotect 'code here ActiveSheet.Protect 

因为之后密码可能会改变,用户不需要编辑vba代码。

任何想法或input赞赏。 谢谢,保罗

一个可能的解决方法,我发现可能是以下(发现: http : //answers.microsoft.com/en-us/office/forum/office_2010-customize/vba-error-for-chart-on-protected-sheet/ b7cf62ca-6c08-4ee9-a596-d457be84fd95 ):

添加另一个不受保护但隐藏的工作表(“工作表2”)。 在此工作表中,根据“Sheet1”中的数据创build图表。 从“工作表2”和“工作表1”复制图表,然后粘贴 – >图像。 现在select图像并添加一个像“= Sheet2!A1:G12”的forms。 这将显示在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”上的图像应自动更新。