Excel宏_实现对动态数据求均值和落在特定范围的数据的个数

来源:互联网 发布:备份软件购买 编辑:程序博客网 时间:2024/04/28 16:41

516号晚,同学叫我帮忙写一个Excel宏,实现对动态数据的求均值和落在特定范围的数据的个数。由于我在大二学过VB(那时学VB主要是为了应付学校的计算机二级考试,过后就没动过了),但对VBA从没碰过,匆忙间也就在Microsoft 的在线帮助中看看,搞到早上5点左右,终于搞定,今天在此记下代码,以后如果有用,就方便了,如果他人觉得有用,请注明出处,谢谢!

 

Sub QIU_ZHI()

'要求:选中你要处理的数据,数据请不要放在前4列中

'功能:对数据求均值、0.9*均值、1.1*均值和落在这个范围内的数据的个数。

'注明:均值在33列,0.9*均值在43列,1.1*均值在53列,落在这个范围内的数据的个数在63

'edit by Hsxzhe 080517

 

  Dim mycell As Range                    '声明mycell是一个区域变量

 

  '声明各变量,由于对VBA常用函数、属性不熟悉,故此宏中定义了大量变量来存储需要处理的数据

  Dim data_sum As Double                 '总和

  Dim pin_jun As Double                  '均值

  Dim zero_p_nine_pinjun As Double       '0.9*均值

  Dim one_p_one_pinjun As Double         '1.1*均值

  Dim fanwei_feshu As Integer            '落在这个范围内的数据的个数

 

  Dim row_start As Integer               '标记所选区域的开始行号

  Dim row_end As Integer                 '标记所选区域的结束行号

  Dim column_start As Integer            '标记所选区域的开始列号

  Dim column_end As Integer              '标记所选区域的结束列号

  Dim aero_num As Integer                '标记所选区域的总个数

 

  Dim row_temp As Integer

  Dim column_temp As Integer

 

 

  '初始化变量

  data_sum = 0

  pin_jun = 0

  zero_p_nine_pinjun = 0

  one_p_one_pinjun = 0

  fanwei_geshu = 0

 

 

  '求出总和

  aero_num = 0

  For Each mycell In Selection

      If aero_num = 0 Then

         row_start = mycell.Row

         column_start = mycell.Column

      End If

      data_sum = data_sum + mycell.Value

      aero_num = aero_num + 1

      row_end = mycell.Row

      column_end = mycell.Column

  Next

 

  '求出个数据

  pin_jun = data_sum / aero_num

  zero_p_nine_pinjun = 0.9 * pin_jun

  one_p_one_pinjun = 1.1 * pin_jun

 

 

  row_temp = 0

  column_temp = 0

  '求出落在这个范围内的数据的个数

  For row_temp = row_start To row_end

    For column_temp = column_start To column_end

      If Cells(row_temp, column_temp).Value > zero_p_nine_pinjun And Cells(row_temp, column_temp).Value < one_p_one_pinjun Then

         fanwei_geshu = fanwei_geshu + 1       '落在范围内,则统计个数

      End If

    Next

  Next

 

  Cells(3, 3) = pin_jun

  Cells(4, 3) = zero_p_nine_pinjun

  Cells(5, 3) = one_p_one_pinjun

  Cells(6, 3) = fanwei_geshu

 

 

 

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

''''''''''''''''''''''下面的是垃圾,只是格式处理''''''''''''''''''''''''''

Cells(3, 2) = "均值"

Cells(4, 2) = "0.9*均值"

Cells(5, 2) = "1.1*均值"

Cells(6, 2) = "范围个数"

Range(Cells(3, 2), Cells(6, 3)).Select

Range(Cells(3, 2), Cells(6, 3)).Font.Bold = True

With Selection.Borders(xlEdgeLeft)

    .LineStyle = xlContinuous

    .Weight = xlMedium

    .ColorIndex = xlAutomatic

End With

With Selection.Borders(xlEdgeTop)

    .LineStyle = xlContinuous

    .Weight = xlMedium

    .ColorIndex = xlAutomatic

End With

With Selection.Borders(xlEdgeBottom)

    .LineStyle = xlContinuous

    .Weight = xlMedium

    .ColorIndex = xlAutomatic

End With

With Selection.Borders(xlEdgeRight)

    .LineStyle = xlContinuous

    .Weight = xlMedium

    .ColorIndex = xlAutomatic

End With

 

End Sub

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 秋田犬夏天退毛严重么 怎么办 初中数学基本没学过高中怎么办 老师家纺突然想日语文老师怎么办 微信聊天表情小企鹅不动了怎么办 微信自带小表情不全怎么办 爱奇艺电视果有图像无声音怎么办 微信表情包保存不到手机相册怎么办 才出生的兔宝宝被母兔抓伤了怎么办 老婆生气了说恨我一辈子我该怎么办 华为手机微信表情不显示含义怎么办 地下城游戏登录链接一直失败怎么办 聊天时别人打听家人不想回答怎么办 微信钱包零钱密码忘了怎么办 斗图我能怎么办我也很无奈 微信解冻设备不一致申诉失败怎么办 看不懂微信脸部表情什么意思怎么办 有的动图图片过大微信发不了怎么办 微信漂流瓶扔瓶子没有人回复怎么办 删了微信 手贱 添加 怎么办 姨妈弄到床垫上拆不下来洗怎么办 碰到情商智商都高的小人怎么办 微信聊天界面右上角的小人头怎么办 最近摸高摸到的高度越来越矮怎么办 每次孕检显示小孩子体型大怎么办? 阴阳师纸片人蓝色锦囊点掉了怎么办 抱孩子把腰闪了动不了在家怎么办 餐厅客人中有儿童服务时怎么办 脊柱胸段向右侧凸要怎么办 玩球球大作战不小心开自由了怎么办 小孩哭脸后喝水呛着了怎么办 摔跤引起的脸部半边儿僵硬怎么办 老人受了刺激大笑不止是怎么办 想让父母陪着玩 没时间怎么办 开过光的百家锁东西别人碰了怎么办 兔兔助手描述文件变了存档怎么办 扣扣没有绑手机被盗了怎么办 我的扣扣被盗了好友也被删了怎么办 小孩不胖但脖子黑怎么办呢 小孩喜欢歪头斜眼看东西怎么办 苹果x屏幕截图发送后成文字怎么办 小朋友照相照出老太脸是怎么办