首页 > 解决方案 > 如何禁止用户删除 vba 中的图表?

问题描述

我在我的excel表上做了一个图表,我希望用户不能删除它......

我该怎么做?

我已经从这里尝试过这个选项:

https://peltiertech.com/Excel/ChartsHowTo/ChartProtection.html

代码是这样的:

'Draw a chart
Dim rng As range
Dim cht As ChartObject

'Your data range for the chart
Set rng = Worksheets("Sheet1").range("$A$2:$A$100")

'Activate chart
Worksheets("Sheet1").ChartObjects(1).Activate

'Populate chart with data
ActiveChart.SetSourceData Source:=rng


'Determine type
ActiveChart.SeriesCollection.NewSeries.ChartType = xlLineMarkers

'Delete the 5th series
If ActiveChart.SeriesCollection.Count = 5 Then
    ActiveChart.SeriesCollection(5).Delete
End If

我需要这样的东西:

ActiveChart.preventDeleting

现在,我想到的保护措施是防止用户主动删除图表......简单的选择和删除,或按钮按下删除,或其他东西......

简单来说,阻止任何删除图表的尝试...

但是,我不知道这是否相关,但表格可以更改其范围,并且图表应该仍然能够更新......

请让我知道,如果您需要其他东西...

另外,它不需要是vba代码,也可以是手动解决方案,我使用的是MS excel 2007

谢谢...

标签: excelvba

解决方案


您可以通过保护工作表来保护图表。如果您希望用户能够编辑某些单元格,只需右键单击您希望能够编辑的单元格并选择Format Cells -> Protection -> Locked并确保未选中此项。

在此处输入图像描述

然后通过Review -> Protect Sheet菜单栏上的保护工作表。这将防止删除图表并允许用户继续编辑单元格内容


推荐阅读