我试图使用Chart.BeforeDoubleClick事件让宏在工作表中的图表上工作。
我已经能够在独立的图表中使用BeforeDoubleClick事件(不使用类模块)。但我想让它在嵌入作为工作表中的对象的图表中工作。我们的想法是在单个工作表中复制多个图表。
按照本书中的建议(第172-3页),我做了以下工作:
创建了新的工作簿。在工作表Sheet1中添加了2列随机数据,并在数据旁边的同一工作表中添加了散点图。
使用代码插入名为“cl_ChartEvents”的类模块:
Public WithEvents myChartClass As Chart
使用代码创建了一个标准模块:
Dim myClassModule As New cl_ChartEvents Sub InitializeChart() Set myClassModule.myChartClass = _ Worksheets("Sheet1").ChartObjects(1).Chart End Sub
在VBA编辑器中,双击“Sheet1(Sheet1)对象并插入代码:
Private Sub MyChartClass_BeforeDoubleClick(ByVal ElementID As Long, _ ByVal Arg1 As Long, ByVal Arg2 As Long, Cancel As Boolean) Select Case ElementID Case xlLegend Me.HasLegend = False Cancel = True Case xlAxis Me.HasLegend = True Cancel = True End Select End Sub
单击“运行”并运行InitializeChart宏。
当我双击图表上的图例时,没有任何反应,Excel只是像往常一样打开格式图例属性框。
我已经完成了在线查看论坛等的作业,但是无法找到任何其他提示,可以实现BeforeDoubleClick事件如何在常规工作表中使用图表。书中的方法似乎表明这是可行的。
任何帮助,将不胜感激!让这个工作可以帮助很多其他人在网上看到类似的问题。谢谢。