ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 6890|回复: 8

[求助] 根据第一列分系列自动画图问题,谢谢

[复制链接]

TA的精华主题

TA的得分主题

发表于 2010-7-18 21:18 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
各位大侠,我查了一下坛子里的帖子,都没有讲这方面怎么自动画图的,就是某一列a,b,c等,根据这个生成相应的系列,作图数据则是另外的列。下面传的文件chart是我想要的效果,请问怎样才能通过vb实现呢?实际的数据很多,怎样才能在语句里让它自动识别第一列名称相同的范围呢?谢谢

求助.rar

27.34 KB, 下载次数: 82

TA的精华主题

TA的得分主题

发表于 2010-7-20 12:30 | 显示全部楼层

〖Excel Home友情提示〗

   

很遗憾通知楼上朋友,您的帖子在24小时之内没有任何回复!

通常情况下,本论坛发布的主题帖会在8小时被回复或处理。您的帖子在24小时之内未被回复,其中的原因可能是

1、问题表述不清、模棱两可,难以理解,帮助者被搞晕了,夺帖而出;
2、没有上传必要的附件,或附件被遗忘在某个角落;
3、发帖提问时,语气带棱角、带挑衅,不幸被列入不受欢迎的帖子;
4、所提问题不成立,或提不合理的要求,乐于助人者使出“走为上”之计;
5、话题较偏、较冷或者发布到了不合适的版块,暂时无人问津,顾影自怜。


为了提高您的问题解决效率,我们推荐您阅读以下文章:
* 如何发表新话题和上传附件:http://club.excelhome.net/thread-45649-1-1.html
* 发帖的技巧:http://club.excelhome.net/thread-176339-1-1.html
* EH技术论坛的最佳学习方法:http://club.excelhome.net/thread-117862-1-1.html

TA的精华主题

TA的得分主题

发表于 2010-7-20 21:49 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
试一下,是不是这样
Private Sub CommandButton1_Click()
Dim MyChart_Name As String
Dim Mysher As Integer
Dim MychSE As Series
Dim Mych As ChartObject     '声明变量为嵌入式图表对象

MyChart_Name = "我的图表"

On Error Resume Next     '如出错,则从出错行下一行开始执行
Set Mych = ActiveSheet.ChartObjects(MyChart_Name)     '设置对象
'MsgBox Err.Number
If Err.Number <> 0 Then    '设置对象出错,没有对象
   Set Mych = ActiveSheet.ChartObjects.Add(200, 80, 680, 360)     '添加嵌入图表,设置对象
   Mych.Name = MyChart_Name     '设置对象名称
End If
Err.Clear   '清除Err对象
'On Error GoTo Myerr     '如出错,则执行Myerr语句

With Mych.Chart
   .ChartType = xlXYScatter       '图表类型为散点图
   For Each MychSE In .SeriesCollection
      MychSE.Delete     '删除图表中的所有系列
   Next
End With


Mysher = Range("A65536").End(xlUp).Row
csh = 2
For i = 2 To Mysher
If i > 65536 Then Exit For
If Cells(i, 1) <> Cells(i + 1, 1) Then
   Set MychSE = Mych.Chart.SeriesCollection.NewSeries     '添加系列
   MychSE.XValues = Range(Cells(csh, 3), Cells(i, 3))     '设置x值
   MychSE.Values = Range(Cells(csh, 2), Cells(i, 2))     '设置y值
   MychSE.Name = Cells(i, 1)     '设置名称
   csh = i + 1
End If
Next i

With ActiveChart.Axes(xlCategory)     '设置X轴
   .MinimumScale = 0     'X轴的最小刻度值
   .MaximumScale = 180     'X轴的最大刻度值
   .MinorUnit = 4     'X轴次要刻度单位
   .MajorUnit = 20     'X轴主要刻度单位
   .Crosses = 0     'X轴与Y轴相交的点
End With

With Mych.Chart.Axes(xlValue)     '设置Y轴
   .MinimumScale = 0.01     'Y轴的最小刻度值
   .MaximumScale = 1000     'Y轴的最大刻度值
   .MinorUnit = 10     'Y轴次要刻度单位
   .MajorUnit = 10     'Y轴主要刻度单位
   '.Crosses = xlCustom       'Y轴与X轴相交的点
   .CrossesAt = 0.01       'Y轴与X轴相交的点
   .ScaleType = xlLogarithmic     '设置Y轴的刻度类型
End With
Mych.Activate     '对象激活

Myerr:
   Exit Sub

End Sub



测试.zip (53.86 KB, 下载次数: 174)

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-7-22 09:44 | 显示全部楼层

回复 3楼 jiulongpo 的帖子

恩,太感谢了

TA的精华主题

TA的得分主题

发表于 2010-11-30 22:39 | 显示全部楼层
这个太好了,偶也用上了。。。

TA的精华主题

TA的得分主题

发表于 2012-2-22 14:40 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2012-6-12 23:38 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2013-4-24 02:46 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2018-7-1 01:27 | 显示全部楼层
jiulongpo 发表于 2010-7-20 21:49
试一下,是不是这样
Private Sub CommandButton1_Click()
Dim MyChart_Name As String

高手,很赞。不知道不使用VBA能实现这种画图吗?
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-12-29 04:21 , Processed in 0.051772 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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