繁体   English   中英

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

[英]Excel-VBA: editing the axes of a chart on a protected worksheet

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

我有一个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

这给我一个错误“对象“ _Chart”的方法“轴”已失败”。

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

除了用

ActiveSheet.Unprotect
'code here
ActiveSheet.Protect

因为此后密码可能会更改,因此用户不必编辑vba代码。

任何想法或意见表示赞赏。 谢谢保罗

我发现的一种可能的解决方法如下(位于: http : //answers.microsoft.com/zh-cn/office/forum/office_2010-customize/vba-error-for-chart-on-protected-sheet/ b7cf62ca-6c08-4ee9-a596-d457be84fd95 ):

添加另一个不受保护但隐藏的工作表(“ Sheet2”)。 在此工作表中,基于“ Sheet1”中的数据创建图表。 从“ Sheet2”复制图,然后在“ Sheet 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”上的图像应自动更新。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM