我有一个包含几个图表的Excel工作表,该工作表受保护并且所有图表均已锁定。
我希望用户可以复制图表。 右键单击并选择副本,或者在单击或双击图表时在触发宏。
我已经尝试过使用图表和ActiveChart.ProtectSelection
的锁定属性,但是如果图表是未锁定或可选的,则用户仍然可以将图表从图纸上切掉。
为图表分配宏也无法解决问题,因为我还没有找到一种方法来找出单击了哪个图表(如果可能,我将避免为每个图表编写一个分离的子项。) )。
我尝试使用Chart1_BeforeDoubleClick
事件,但无法正常工作(仅在图表工作表中有效吗?)
谢谢!
答案 0 :(得分:2)
您可以在该图表上分配一个子例程:
Private Sub Chart1_Click()
ActiveSheet.ChartObjects(1).CopyPicture
MsgBox "Chart copied."
End Sub
由于要在多个图表上使用它,因此需要首先确定图表的名称:
Sub Chart_Click()
Dim chartName As String
chartName = ActiveSheet.Shapes(Application.Caller).Name
ActiveSheet.ChartObjects(chartName).CopyPicture
MsgBox "Chart copied."
End Sub