VBA在统计分析中的应用

VBA在统计分析中的应用

ID:38334502

大小:2.00 MB

页数:9页

时间:2019-06-10

VBA在统计分析中的应用_第1页
VBA在统计分析中的应用_第2页
VBA在统计分析中的应用_第3页
VBA在统计分析中的应用_第4页
VBA在统计分析中的应用_第5页
资源描述:

《VBA在统计分析中的应用》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1质量统计分析系统该质量分析系统就是把下表(总统计)的数据按不同的要求进行统计,比如按日期、产品、操作者或按日期和产品以及按日期和姓名等要求进行对产品不合格因素的各项进行统计分析,即使是使用Excel里自带的函数功能,面对这样的要求也是爱莫能助了。不过还好,Excel里的VBA可以让我们实现,而且速度快,计算结果准确。2.1基本数据表既然是统计,那么无论如何就得有一个带有很多数据的表,也就是统计系统要求根据不同日期、产品、和操作者及产品不合格项目对表格数据的录入和编辑,对数据的录入也就是把收集来数据输入到Excel的工作表中。

2、当然,面大量的数据,数据表的样式如何设计?才方便数据的输入,同时也要方便后序工作的统计要求;首先,从数据的来源来看,我们收集来的数据是零乱的,也就是不同日期会有不同的产品,也会有不同的操作者等等,如果哪怕是按其中一种要求来输入数据,那么在输入数据时都会很艰难,不仅慢,而且也容易出错。对于一个系统而言,如何使录入数据时的方便就是一个主要的问题;这里把录入数据和存储数据的在这个表格叫基本数据表,它主要是负责具体单位的数据的输入和存储,无论如何进行单位项目数据的录入和编辑操作都要使其不会影响系统运行的界面,也就是在进行统计分析时是不

3、会改变此工作表的数据的,这样的话统计结果就需要以其它方式表现出来,比如在新的表格中或图表中得到统计结果。所以,基本数据表的数据输入就按所收集来的数据顺序进行一一输入,这样可以提高输入速度,而且也不容易出错。具体表格样式还可以根据使用者的具体要求进行设计。2.1.1数据表的优化根据要求,我们在输入数据时,会遇到相同对象的重复输入;为了减少数据的输入次数,这里力争做到数据输入的一次性,即相同的数据只输入一次,如操作者送检的不合格数与检验员检的不合格数是一样的,而操作者与检验员是一对多的关系,从上表F16(27:操作者的编号)与F1

4、7(49:检验员的编号)和F18(50:检验员的编号)(关于编号问题下一步说明),对于H16的数据和H17与H18的和是相同的,这里就没有必要在对H16进行输入了,只要一输入H17和H18的数据,那么H16的数据就会自动生成了,同理,对于H列的数据和(I列:X列)的数据也是一样的,而(I列:X列)的数据是必须一一对应的,也是必须输入的,所以这里要求只要输入(I列:X列)的数据,那么H列的数据也要自动生成。关于操作者使用的是编号,主要是作为一个数据的输入载体,如果不断的在汉字和数字之间相互输入,那么汉字的输入必然会成为该操作的瓶

5、颈,所以把姓名和操作者编号统一联系起来,只要在F列输入编号,那么E列就自动生成与之对应的姓名了,同时为了区分检验员和操作者,把1~40号定为操作者的号,而41~60定为检验员的号。既然上面已经提到操作者与检验员的一对多的关系,那么到底是一对几呢?也就是什么时候才是操作者与相应检验员的数据的输入结束呢?从编程的概念来将,如何控制这个起点和结束点呢?当然,一个操作者就必然是该组数据的起点,而下一个操作者(可以和上一操作者相同)的上一个数据就成为结束点了,也就是数据表会成在这样的关系:操作者—检验员1—检验员2—检验员X—操作者—检

6、验员X也就是只要一遇到操作者,那么操作者与相应检验员的关系就结束了。为了配合姓名与编号的一一对应关系,这里需要新建了一个表(操作人员):这个表主要是为了能在总统计工作表中输入操作者编号时能自动从这个表中返回操作者的姓名。到此,该系统的基本数据表的基本框架已差不多完成,即表格的表现形式、要求都已经明确。现在的关键就是如何应用VBA编程来实现该表格在输入时的自动计算了。2.1.1基本数据表的VBA编程首先,为了能自动运行,那么就必须有什么对象被触发而引起某一事件的产生了,在Excel的VBA里有当活动单元格被改变时就会触发的事件:

7、PrivateSubWorksheet_SelectionChange(ByValTargetAsRange)CallAuto'调用自动运算过程EndSub这个事件,只要活动单元格一改变,就可以让Excel运行其中的Auto过程,SubAuto()为了使运算速度快,不至于把所有的数据都重复计算,那么就只需要计算刚输入的数据就可以了,那么如何去得到这个刚输入的数据呢?由于输入数据后单元格及有内容了,就不是空的了,么就让VBA去找到这个空格,这样只要一找到空格,那它的上一个数据不就是刚输入的数据了吗?i=HKSDoWhileCel

8、ls(i,CZZ)<>""i=i+1Loop找到了刚输入的数据,接下来就可以一步一步实现数据的自动计算了,首先,把输入操作者的编号转变成操作者的姓名CallSRName(i)'调用SRName过程,该过程就要根据操作者的编号在操作人员表里找到与编号相对应的姓名;SubSRNa

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。