[英]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.