ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

有几行代码看不懂,麻烦大家解释一下

[复制链接]

TA的精华主题

TA的得分主题

发表于 2014-11-14 14:50 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

图片

图片
   
就是黄色高亮部份。谢谢!

Sub  test()
Dim a As Integer, c As Single   
Dim x As Integer, y As Integer      
Dim b As Range
y = Range("G1").End(xlDown).Row   
For Each b In Range("I2:I10")     '
    a = 0
    c = 0

    For x = 1 To y Step 1            
   
    If Range("G" & x).Value = b.Value Then    '
       a = a + 1
        c = Range("F" & x).Value + c
    End If
   
    Next x
   
    b.Offset(0, 1) = a
    b.Offset(0, 2) = c

Next b
End Sub

Book1.zip

49.07 KB, 下载次数: 29

头像被屏蔽

TA的精华主题

TA的得分主题

发表于 2014-11-14 15:04 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2015-1-7 20:04 | 显示全部楼层
a = 0, c = 0初始a和C设置为0。
  a = a + 1每出现一次该人名,a值增加1。
b.Offset(0, 1) = a当前人名的右边一格,也就是J列同行的格子,值等于a。
b.Offset(0, 2) = c当前人名的右边二格,也就是K列同行的格子,值等于C。

TA的精华主题

TA的得分主题

发表于 2015-1-12 09:52 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
Sub 订单数和销售额()
Dim a As Integer, c As Single               '设定变量,a保存订单数量(整数),c保存销售额(单精度),
Dim x As Integer, y As Integer              '用于循环的变量
Dim b As Range                              '设定临时单元格变量

y = Range("G1").End(xlDown).Row             '取以G1为基准的有效数据区域行数(也就是销售明细表区域的行数到空白)

For Each b In Range("I2:I10")               '在I2:I10这单元格循环取值给b(右边的销售人员)
    a = 0                                   'a的初始值=0
    c = 0                                   'c的初始值=0
    For x = 1 To y Step 1                   '从1到y循环(y是销售G1的行数),步进1
            
    If Range("G" & x).Value = b.Value Then  '判断,如果G列里面的姓名=I列的姓名
        a = a + 1                           'a就累计(就是销售次数)
        c = Range("F" & x).Value + c        'c就是把F列的销售额累计作为销售人员销售额
    End If
   
    Next x                                  '循环
   
    b.Offset(0, 1) = a                      '把累计好的次数(订单数)赋值给 (b是单元格,右边销售人员里面的某个人员)偏移[0行,1列]
    b.Offset(0, 2) = c                      '偏移[0行,2列]就是销售金额
Next b

End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-5-19 08:54 | 显示全部楼层
濸嗨壹酥 发表于 2015-1-12 09:52
Sub 订单数和销售额()
Dim a As Integer, c As Single               '设定变量,a保存订单数量(整数),c保 ...

谢谢啊,今天才翻回这个帖子
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-26 02:54 , Processed in 0.029280 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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