【问题标题】:Excel-VBA: editing the axes of a chart on a protected worksheetExcel-VBA:在受保护的工作表上编辑图表的轴
【发布时间】:2015-08-11 08:14:04
【问题描述】:

我已经尝试并失败了很长一段时间......

我有一个 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”的方法'axes'失败了”。

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

除了将代码用

包围之外,还有什么办法吗?
ActiveSheet.Unprotect
'code here
ActiveSheet.Protect

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

感谢任何想法或意见。 谢谢, 保罗

【问题讨论】:

  • 这曾经在 Excel 2003 中工作,但在 Excel 2016 中已损坏(可能自 Excel 2007 以来已损坏)。

标签: vba excel


【解决方案1】:

我发现的一种可能的解决方法如下 (位于:http://answers.microsoft.com/en-us/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”上看到的内容(当然,您可能需要移动图表和/或更改范围)。 将上面的宏编辑为:

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”上的图像应该会自动更新。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-14
    • 2020-10-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多