ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: single_star

[分享] 图表事件应用范例汇总(共40+例Chartevents)

  [复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-11-2 08:57 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖已被收录到知识树中,索引项:图表对象
本帖最后由 single_star 于 2011-11-2 09:11 编辑
boyou3039 发表于 2011-11-2 07:48
比较多
先上一例看看是否是我操作的错误
2007打开后没有运行宏的时候表示是正常的,运行宏后就不对了

这样看来似乎是宏没有正常运作所致,你把以下宏中的
On Error Resume Next
myChartClass.SeriesCollection(i).DataLabels.Delete
删掉或注解后再运行看错误原因
'******************************************
Private Sub myChartClass_Calculate()
'Application.EnableEvents = False

n = myChartClass.SeriesCollection.Count
If n = 0 Then Exit Sub
ref1 = ActiveWorkbook.Names("log1").RefersToRange
ref2 = ActiveWorkbook.Names("chart1").RefersToRange
For i = 1 To n
p = myChartClass.SeriesCollection(i).Points.Count
If p = 0 Then Exit For
'On Error Resume Next
'myChartClass.SeriesCollection(i).DataLabels.Delete

myChartClass.SeriesCollection(i).DataLabels.Delete
myChartClass.SeriesCollection(i).ApplyDataLabels AutoText:=True, ShowValue:=True
For j = 1 To p
a = Val(myChartClass.SeriesCollection(i).Points(j).DataLabel.Characters.Text)
b = Application.WorksheetFunction.Match(a, ref1, 1)
c = Application.WorksheetFunction.Index(ref2, b)
myChartClass.SeriesCollection(i).Points(j).DataLabel.Characters.Text = c
Set d = Range("chart1").Offset(b - 1, 0).Resize(1, 1).Font
With myChartClass.SeriesCollection(i).Points(j).DataLabel.Font
.Name = d.Name
.Size = d.Size
.ColorIndex = d.ColorIndex
End With
Next
Next
'Application.EnableEvents = True
End Sub


TA的精华主题

TA的得分主题

发表于 2011-11-2 09:15 | 显示全部楼层
single_star 发表于 2011-11-2 08:57
这样看来似乎是宏没有正常运作所致,你把以下宏中的
On Error Resume Next删掉或注解再运行看错误原因
...

On Error Resume Next
这句删除后
情况和以前一样
运行宏后就变错了

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-11-2 09:36 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 single_star 于 2011-11-2 10:01 编辑

我把代码改了一下,你再试试看...(按'F9'刷新后应有提示'Finish!')
ps.程式中断或增删宏后必需重新Initializechar()才会引发图表事件

Chart1-1.rar

13.22 KB, 下载次数: 55

TA的精华主题

TA的得分主题

发表于 2011-11-9 08:07 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-11-10 16:55 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
6楼新增'依数据最大值设定图表Y轴刻度'(autoscale,2011/11/10新增)

TA的精华主题

TA的得分主题

发表于 2011-11-10 20:45 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
真的是好东东来的,正需要这些呢,谢谢

TA的精华主题

TA的得分主题

发表于 2011-11-11 11:21 | 显示全部楼层
自动排序及依名称固定颜色的饼图
请问这个宏怎么录制啊。或者说我想使用类似的宏,怎么做呢。谢谢。

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-11-11 13:43 | 显示全部楼层
本帖最后由 single_star 于 2011-11-11 13:47 编辑
mostin 发表于 2011-11-11 11:21
自动排序及依名称固定颜色的饼图
请问这个宏怎么录制啊。或者说我想使用类似的宏,怎么做呢。谢谢。


这个帖的一些范例都是图表事件的应用,要使其产生作用就必須先建立新的類別模組,並宣告含有事件的 Chart 類型物件
'**********************************************************************************************
內嵌圖表事件的用法(宏里面的说明有详细的范例及说明)
特定預設情況下,圖表工作表的事件都是可用的。但在使用具有 Chart 物件、且此物件代表內嵌圖表的事件之前,必須先建立新的類別模組,並宣告含有事件的 Chart 類型物件。例如,假設建立了名為 EventClassModule 的新類別模組,而該模組內包含下列程式碼。

Public WithEvents myChartClass As Chart
               
在宣告含有事件的新物件之後,該物件將出現在類別模組的 [物件] 下拉式清單方塊內;此時您就可為該物件編寫事件處理程序了。(在 [物件] 下拉式清單方塊內指定該物件後,[程序] 下拉式清單方塊內將列出該物件的有效事件)。

但是,在事件處理程序執行之前,必須將類別模組中的宣告物件與內嵌圖表連接。您可從任意的模組中用下列程式碼來完成這一動作。

Dim myClassModule As New EventClassModule

Sub InitializeChart()
    Set myClassModule.myChartClass = _
        Worksheets(1).ChartObjects(1).Chart
End Sub
               
執行 [初始化圖表] 程序之後,類別模組中的 myChartClass 物件將指向工作表一上的內嵌圖表一,並且當事件發生時,將引發類別模組中的事件程序。
ps.自动排序及依名称固定颜色的饼图用的是myChartClass_Calculate()图表事件


TA的精华主题

TA的得分主题

发表于 2011-11-13 16:25 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2011-11-13 16:37 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
有些图标好像不能完全实现功能。我的Excel是2010版本的。会不会是这一个原因啊
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-7-2 14:18 , Processed in 0.041109 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表