excel VBA 编程,数据处理,并画图,详细代码,加解释

基础的东西就不讲了,详情请看:入门瞧一瞧这里

本教程所用数据和代码连接:本节教程所需要的数据和代码

下载原始数据后打开, 右击下图的 `Summary` 并选择 `View Cpde` 查看代码

主要的代码在 `Sheet3(RawData)` 以及 `Module1` 中,如下图:

`Sheet3(RawData)` 中的代码主要是完成了事务触发功能,即只要 `Sheet3(RawData)` 中的数据发生变化,就会触发这里的 `Worksheet_Change` 函数,代码如下:

'Private Sub Worksheet_Change(ByVal Target As Range)
'    If Target.Address = "$D$2" Then            ' 具体到某个单元格变化才触发事件
'        'MsgBox ("Cell D2 Has Changed.")
'        Call MyCode
'    End If
'End SubPrivate Sub Worksheet_Change(ByVal Target As Range)         ' 只要工作表内容发生变化,就会触发Call MyCode            ' 这里调用了在 Module1 中名为 MyCode 的函数处理这个事务
End Sub

`Module1` 中的代码主要就是对数据的处理以及画图了,如下:

Sub MyCode()Sheet2.UsedRange.ClearContents          ' 清除Sheet2的所有单元格内容If Sheet1.ChartObjects.Count > 0 Then   ' 删除Sheet3工作表的所有图表。当对一个没有图表的工作表进行删除操作时会报错Sheet1.ChartObjects.Delete          ' 所有要先进行判断,如果图表数大于0才执行删除操作End IfSheet3.Rows(1).Copy Destination:=Sheet2.Rows(1)     ' 将Sheet3第1行的数据拷贝到Sheet2的第1行Sheet3.Rows(1).Copy Destination:=Sheet2.Rows(4)For col = 1 To 40                   ' 求多列指定区域数据的平均值For cnt = 2 To 50               ' 求指定列的第(2:50)个数据的平均值Sheet2.Cells(2, col) = Sheet2.Cells(2, col) + Sheet3.Cells(cnt, col)    '求和NextSheet2.Cells(2, col) = Sheet2.Cells(2, col) / 49                            ' 求平均值NextrowCur = 2For col = 1 To 40rowCur = 2Do While Sheet3.Cells(rowCur, col) <> ""        ' 若不为空,则循环Sheet2.Cells(rowCur + 3, col) = (Sheet3.Cells(rowCur, col) - Sheet2.Cells(2, col)) / Sheet2.Cells(2, col)rowCur = rowCur + 1LoopNext'MsgBox rowCur               ' 验证行数是否正确' 以下设计图的区域x = Sheet2.Range("A1", "A25").Left       ' 设置图表容器的左边缘y = Sheet2.Range("A1", "Q1").Top         ' 设置图表容器的上边缘w = Sheet3.Range("A1:Q1").Width          'h = Sheet3.Range("A1:A25").HeightSet Ch1 = Sheet1.ChartObjects.Add(x, y, w, h)       ' 新建曲线图对象Ch1.Name = "Results"With Ch1.Chart                      ' With是一个代码块,由End With结束。表示这个with块中的所有代码都是对Ch1.Chart的属性进行设置。.HasTitle = True                ' 如果没有With块,这句完全能用"Ch1.Chart.HasTitle = True"代替.ChartTitle.Text = Ch1.Name     ' 把图表容器的名字作为图表的标题.ChartTitle.Left = 350          ' 设置图表标题的位置.ChartTitle.Top = 10.PlotArea.Width = 700           ' 设置图表容器中 画图区域 相对于图表容器的位置.PlotArea.Left = 30             ' 图表容器中除了画图区域,还有标题,图列,以及坐标轴名字等其他对象.PlotArea.Top = 15              ' 设置合适的 画图区域,是为了其他对象更好的显示.PlotArea.Height = 300.Legend.Position = xlLegendPositionTop      ' 将图例放在画图区域的上方。图例就是在一个有多个折线的图中,对每个折线含义的说明.Legend.Left = 70               ' 因为按上面的方法设置的图例位置稍微有点不太理想,所有这里对图例位置进行微调。.Legend.Top = 46                ' 注意这里的微调值是相对于图表容器的左上角,而不是 画图区域.ChartType = xlLine             ' 设置图表类型为折线图For i = 1 To 40.SeriesCollection.NewSeries.SeriesCollection(i).Values = Range(Sheet2.Cells(5, i), Sheet2.Cells(rowCur + 2, i))'.SeriesCollection(1).XValues = Sheet2.Range("B" & startRows, "B" & endRows)            ' 选择X轴的数据源.SeriesCollection(i).Name = Sheet2.Cells(1, i)      ' 设置图例的名字.SeriesCollection(i).AxisGroup = 1                  '选择Y轴主坐标(左),2表示用Y轴副坐标(右)NextWith .Axes(xlValue, xlPrimary)          ' 对Y主坐标轴的属性进行设置.MinimumScale = -0.01               ' 设置Y主坐标轴的最小值.MaximumScale = 0.1                 ' 最大值.HasTitle = True                    ' 显示这个坐标轴的标题.AxisTitle.Text = "ChangeRate(%)"   ' 设置标题.TickLabels.NumberFormat = "0.0%"   ' 把Y轴坐标值以百分数显示End WithWith .Axes(xlCategory)                  ' 对X坐标轴的属性进行设置.HasTitle = True.AxisTitle.Text = "Sample point".TickLabelSpacing = 20              ' X轴坐标刻度太密了,设置每20个数据显示一个刻度。(设置范围是0-255)End WithEnd WithEnd Sub

我感觉结合我上一篇的讲解,很容易看懂了,没甚好说的了。

 

 

 

 

 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/35919.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

太实用了!Excel VBA常用代码!

前两天有两位朋友留言想收集一些VBA的常用代码&#xff0c;今天开始会陆续分享一些&#xff01; 记得收藏好哦&#xff0c;因为今后你应用到稍大型Excel VBA程序时&#xff0c;这其中某些代码肯定会用到。 来看看都是哪些常用代码&#xff1a; 下面先举一个简单的例子&#xf…

用chatGPT写一段SAP的代码

ChatGPT 是 OpenAI 发布的最新语言模型&#xff0c;比其前身 GPT-3 有显著提升。与许多大型语言模型类似&#xff0c;ChatGPT 能以不同样式、不同目的生成文本&#xff0c;并且在准确度、叙述细节和上下文连贯性上具有更优的表现。它代表了 OpenAI 最新一代的大型语言模型&…

解密Prompt系列9. 模型复杂推理-思维链COT基础和进阶玩法

终于写了一篇和系列标题沾边的博客&#xff0c;这一篇真的是解密prompt&#xff01;我们会讨论下思维链(chain-of-Thought)提示词究竟要如何写&#xff0c;如何写的更高级。COT其实是Self-ASK&#xff0c;ReACT等利用大模型进行工具调用方案的底层逻辑&#xff0c;因此在Agent调…

C++与C语言、python的区别? 信奥赛的有没有用? 如何进行编程学习规划?

问题罗列一下&#xff1a; C与C语言有什么区别&#xff0c;python与C的区别&#xff0c;及普及程度 信奥赛起源、存在的意义。 应该如何给孩子规划学习&#xff08;什么年龄段学、学多久、每个学段该做什么&#xff09; 不同学段参加什么比赛、结果能给孩子带来什么。 1、C与C语…

招聘 | 微软小冰-实习生-NLP、CV等算法岗

发布招聘—>加我即可 小冰AI招算法实习生啦&#xff01; 1.参与面向虚拟人社交对话应用场景的需求分析及算法应用研究&#xff1b; 2.参与大规模预训练模型的架构设计&#xff0c;针对其在小样本/零样本/增量学习问题的应用潜力展开研究&#xff1b; 3.负责配合算法工程师和…

与 GPT-4 对打!谷歌推出新模型PaLM 2

来源&#xff1a;数据观综合&#xff08;转载请注明来源&#xff09; 编辑&#xff1a;蒲蒲 5月10日周三举行的谷歌年度开发者大会Google I/O 2023上&#xff0c;谷歌亮出了人工智能&#xff08;AI&#xff09;领域开发的最新成果。 谷歌CEO Sundar Pichai开场就指出&#xff0…

很多方面超过 GPT-4!谷歌推出新模型PaLM 2

来源&#xff1a;数据观综合&#xff08;转载请注明来源&#xff09; 编辑&#xff1a;蒲蒲 5月10日周三举行的谷歌年度开发者大会Google I/O 2023上&#xff0c;谷歌亮出了人工智能&#xff08;AI&#xff09;领域开发的最新成果。 谷歌CEO Sundar Pichai开场就指出&#xff0…

4月21日 PhD Debate预告 | 因果推理(Causal Inference)与时间序列(Time Series)

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入&#xff01; 2023年4月21日10:00&#xff0c;PhD Debate第十五期&#xff0c;题为“因果推理&#xff08;Causal Inference&#xff09;与时间序列&#xff08;Time Series&#xff09;” 特别邀请了圣地亚哥加利福尼亚大学…

Windows 98 发布 | 历史上的今天

整理 | 王启隆 透过「历史上的今天」&#xff0c;从过去看未来&#xff0c;从现在亦可以改变未来。 今天是 2023 年 6 月 25 日&#xff0c;在 1951 年的这一天&#xff0c;世界上第一部彩色电视节目播出。电视经过了许多年的发展&#xff0c;人类的娱乐途径随着互联网的到来变…

跨境电商如何通过实时聊天服务改善客户体验?

关键词&#xff1a;跨境电商&#xff0c;实时聊天&#xff0c;客户服务 实时聊天是客户从跨境电商卖家那里获得即时帮助的沟通渠道。它促进了客户与跨境电商品牌人工代理之间的实时1:1交互&#xff0c;以解决客户问题。 企业通常在其网站上嵌入实时聊天支持&#xff0c;使网站…

SaleSmartly聊天机器人如何帮助您的电商业务

从基于规则的机器人到虚拟助手&#xff0c;聊天机器人正在成为网络交互的标准。越来越多的企业正在使用它们来吸引客户、改善客户服务并增强用户体验。现在有非常多的软件也提供聊天机器人的帮助&#xff0c;比如SaleSmartly&#xff08;ss客服&#xff09;&#xff0c;本文以它…

扬帆际海:shopee跨境电商客服回复流程

在虾皮这个平台上客服的工作重要性比国内电商的客服重要性大很多。很多时候如果客服沟通不畅就会有各种麻烦&#xff0c;毕竟国内跟海外都是有语言差异的&#xff0c;如果不好好处理&#xff0c;遇到客户投诉&#xff0c;可能会导致封店。shopee售后处理不好会有什么影响&#…

独立站电商优选的客服工具

遇到难题&#xff0c;寻找在线客服肯定是解决问题的首选途径了。但大多数独立站跨境电商网站的客服响应速度很难达到及时响应&#xff0c;一般普遍响应的时间从十几分钟到几小时、几十小时不等&#xff0c;甚至还有客服处于‘失联’状态。 去年黑五大促&#xff0c;Louella在某…

除了ChatGPT,还有哪些好玩的AI?

随着人工智能技术的不断发展&#xff0c;越来越多的人开始对其产生了浓厚的兴趣。为了满足人们的需求&#xff0c;许多公司和网站推出了各种免费好玩的AI应用程序。尤其是ChatGPT出来后&#xff0c;彻底大爆发 “我把这一时刻称为人工智能应用的寒武纪大爆发&#xff0c;”-Ins…

博士申请 | 香港中文大学(深圳)宋方达老师组招收贝叶斯统计方向博士生

合适的工作难找&#xff1f;最新的招聘信息也不知道&#xff1f; AI 求职为大家精选人工智能领域最新鲜的招聘信息&#xff0c;助你先人一步投递&#xff0c;快人一步入职&#xff01; 香港中文大学&#xff08;深圳&#xff09; 香港中文大学&#xff08;深圳&#xff09;是一…

博士申请 | ​香港中文大学LaVi实验室招收2022年秋季入学博士生、硕士生

合适的工作难找&#xff1f;最新的招聘信息也不知道&#xff1f; AI 求职为大家精选人工智能领域最新鲜的招聘信息&#xff0c;助你先人一步投递&#xff0c;快人一步入职&#xff01; 香港中文大学 香港中文大学计算机科学与工程系的 LaVi (multimodal Language and Vision) 实…

国外博士后申请需要准备哪些材料?

访问学者、博士后旨在促进教育、艺术、商业和科学领域内人员的知识和技术交流。访问学者主要以国际知名学者&#xff1a;旅行、观测、咨询、研究、培训、分享或示范专业知识或技能、参加有组织的交流项目。与访问学者经常一起出现的还有另外一个名词&#xff0c;就是博士后。那…

海外博士申请经历分享

作者&#xff1a;Crystal 链接&#xff1a;https://zhuanlan.zhihu.com/p/163813428 本文转载自知乎&#xff0c;作者已授权&#xff0c;未经许可请勿二次转载 目录第一部分 是申请的结果个人基本条件第二部分 是个人申请经历&#xff0c;里面内藏干货&#xff0c;建议也都加粗…

chatgpt赋能python:如何通过Python赚钱

如何通过Python赚钱 在当今的数字时代&#xff0c;程序员们越来越多地开始使用Python编程语言。 Python是一种简单且易于学习的代码语言&#xff0c;它在很多应用程序的开发中都扮演了重要的角色。 Python的便利性和多功能性为许多行业的从业者提供了利益。 SEO行业也不例外。…

ChatGPT怎么看?禾赛科技登陆纳斯达克,能否扛起“中概激光雷达第一股”的大旗?...

‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 北京时间2023年2月9日晚&#xff0c;号称“中概激光雷达第一股”的禾赛科技正式登陆纳斯达克&#xff0c;股票代码为“HSAI”&#xff0c;开盘上涨25%&#xff0c;但之后略有下降。截止2月10日上午10点&#xff0c;其市值为…