图表格式如下:其中右侧Delieved by XXX图例项是由图表上右键数据源里建立的,它们的名称链接到其它sheet的某个单元格,它们的值同样如此。
    现在想实现的功能是点击下拉菜单里值的时候,根据下拉菜单值不同,只显示有数据的图例项。
原模块里的图例项是固定好的,我本来实现的是下拉菜单点击时,删除无值的图例项。但再点击下拉菜单其它值时,删除的项再也不会出现了。因为要保证不同图例项的颜色不变,因此我没有动态生成图例。
    请问在VBA 不动态生成有什么办法实现所需功能。比如说,我以前有个思路,在sheet激活的时候复制整个图表,下拉菜单切换点击事件时,将原图表替换掉上一个删除了某些图例项之后的图表,但我不知道能不能实现,怎么实现。
    刚接触VBA,对其中很多概念都不懂,还请指教啊
在EXCELHOME论坛上有个表格附件
http://club.excelhome.net/thread-594975-1-1.html

解决方案 »

  1.   

    郁闷,不会传图片。
    http://club.excelhome.net/thread-594975-1-1.html
    有兴趣的可以看下这个链接。我个人有点想法,在workbook_open()事件里记录我图表每个图例项的特征,如颜色,border,等等。然后,在listbox切换事件中将每个项还原再做删除。
    但是遇到一个问题,我建立图表项是在图表区域右键--源数据--系列选项卡里添加的,而对其颜色或者线条的调整要在右边图例项里更改。前一个是用chart.SeriesCollection(index)来调用,后一个要用chart.LegendEntries(index)来调用,我这里因为有二种线型,一种折线,一种柱状线,导致二个index不匹配,这样我就得不到图例项的相关属性了。