ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 真诚请求高手指点自动化汇总

[复制链接]

TA的精华主题

TA的得分主题

发表于 2011-5-26 08:12 | 显示全部楼层
原帖由 wxiaomaz 于 2011-5-25 23:26 发表
老师,可否把你给我写的这段代码注解一下?我是昨天看了您的帖子才开始学vb,不懂的很多,很需要帮助!谢谢!
sub aa()
application.screenupdating false
(关闭屏幕自动刷新)
sheet1.range("b6:g47")=""
(sheet ...
  1. Sub aa()    '子程序 aa()
  2. Application.ScreenUpdating = False    '关闭屏幕刷新(可以提高运行速度)
  3. Sheet1.Range("b6:g47") = ""    ' Sheet1的<单元格>区域("b6:g47")=空值
  4. arr = Sheet1.Range("a6:g47")    'arr= Sheet1的<单元格>区域("a6:g47")
  5. For i = 2 To Sheets.Count - 1    '设定变量范围为i=2到 表单集合的计数值-1
  6.         With ActiveWorkbook.Sheets(Worksheets(i).Name).Activate    '工作于 活动工作簿的<工作表>(<工作表>(i )的名称 )的激活
  7.                 x = Range("a56565").End(3).Row    'x=<单元格>区域("a56565" )的<末端>(3 )的行标
  8.                 For k = 1 To UBound(arr)    '设定变量范围为k=1到<数组上限>(arr)
  9.                         For ii = 6 To x    '设定变量范围为ii=6到x
  10.                                 If arr(k, 1) = Cells(ii, 1) Then arr(k, i) = arr(k, i) + Cells(ii, 6)    '如果 arr(k,1)=<单元格>坐标(ii,1) 则执行 arr(k,i)=arr(k,i)+<单元格>坐标(ii,6)
  11.                                 If arr(k, 1) = Cells(ii, 1) Then arr(k, 6) = arr(k, 6) + Cells(ii, 7)    '如果 arr(k,1)=<单元格>坐标(ii,1) 则执行 arr(k,6)=arr(k,6)+<单元格>坐标(ii,7)
  12.                         Next ii    '下一个ii
  13.                 Next k    '下一个k
  14.         End With    'With语句结束
  15. Next i    '下一个i
  16. With ActiveWorkbook.Sheets(Worksheets(5).Name).Activate    '工作于 活动工作簿的<工作表>(<工作表>(5 )的名称 )的激活
  17.         x = Range("a56565").End(3).Row    'x=<单元格>区域("a56565" )的<末端>(3 )的行标
  18.         For k = 1 To UBound(arr)    '设定变量范围为k=1到<数组上限>(arr)
  19.                 For ii = 6 To x    '设定变量范围为ii=6到x
  20.                         If arr(k, 1) = Cells(ii, 1) Then arr(k, 5) = arr(k, 5) + Cells(ii, 4)    '如果 arr(k,1)=<单元格>坐标(ii,1) 则执行 arr(k,5)=arr(k,5)+<单元格>坐标(ii,4)
  21.                         If arr(k, 1) = Cells(ii, 1) Then arr(k, 6) = arr(k, 6) + Cells(ii, 5)    '如果 arr(k,1)=<单元格>坐标(ii,1) 则执行 arr(k,6)=arr(k,6)+<单元格>坐标(ii,5)
  22.                 Next ii    '下一个ii
  23.         Next k    '下一个k
  24. End With    'With语句结束
  25. Sheet1.Select    ' Sheet1的选定
  26. Sheet1.[a6].Resize(UBound(arr), 6) = arr    ' Sheet1的[a6]的<重调大小>(<数组上限>(arr),6)=arr
  27. Application.ScreenUpdating = True    '开启屏幕刷新
  28. End Sub    '子程序结束
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-5-26 16:18 | 显示全部楼层
非常感谢,学习了,有不懂的再继续向您请教吧!

TA的精华主题

TA的得分主题

发表于 2012-2-8 14:05 | 显示全部楼层
我想用EXECL的VBA做表,有报酬。有太原的朋友吗,电话13613500042   13834046474     QQ474075884

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-22 11:41 , Processed in 0.039348 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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