ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

EH搜索     
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
Excel不给力? 何不试试FoxTable! Excel 2016函数公式学习大典 Office知识技巧免费学 打造核心竞争力的职场宝典
300集Office 2010微视频教程 Tableau-数据可视化工具 精品推荐-800套精选PPT模板,点击获取 ExcelHome出品 - VBA代码宝免费下载
你的Excel 2010实战技巧学习锦囊 欲罢不能, 过目难忘的 Office 新界面 Excel VBA经典代码实践指南
查看: 166|回复: 9

[求助] 自动材料统计的代码注释能否请大神读后完善下

[复制链接]

TA的精华主题

TA的得分主题

发表于 2020-2-5 17:02 | 显示全部楼层 |阅读模式
本帖最后由 zgjess 于 2020-2-5 17:05 编辑

       代码注释能否请大神读后完善下啊,我自己注释了一些,后面的不太明白。然后我想把这个程序改一下,应用到其它的不同的EXCEL文件中(主要是其它文件中的规格列数不一样),谢谢了!EXCEL原文件是公司加了密的,所以我只能截图了,不好意思!

Sub 自动统计相同代码的材料()       '待解决问题:还未加上自动排序,最后是自动生成材料表标准格式
Dim arr, brr(1 To 1000, 1 To 6)     'Arr 定义一个变体型变量,可以存储任意类型的数据; 申明一个Brr二维静态数组(1000行,6列)
Set d = CreateObject("scripting.dictionary")  'Set:对象引用赋值 ; CreateObject:一个函数 创建并返回一个对 ActiveX 对象的引用;Scripting.Dictionary:用关键字检索单个条目
With Worksheets("sheet1")             'With:在一个单一对象或一个用户定义类型上执行一系列的语句;Worksheets:指定的或活动工作簿中所有 Worksheet 对象的集合。每个 Worksheet 对象都代表一个工作表;
  rw = .[b65536].End(xlUp).Row        '从B列的最后一个单元格往上找,既找材料代码
  arr = .Range("a1:f" & rw)           ' a1:f表示单元格的范围;&用于连接文本;RW是变量需要赋值,比如 .Range("a1:f5")
  For i = 2 To UBound(arr)            '从第2行开始统计;UBound:其值为指定的数组维可用的最大下标
    mx = arr(i, 2)
    If Len(mx) > 2 Then              '若代码栏为2个以下字符时,则不统计数量
     If Not d.exists(mx) Then        'exists如果在 Dictionary 对象中指定的关键字存在,返回 True,若不存在,返回 False。
       n = n + 1
       d(mx) = n
       For j = 1 To 6
          brr(n, j) = arr(i, j)
       Next
       brr(n, 1) = n
      Else
      M = d(mx)
      brr(M, 6) = brr(M, 6) + arr(i, 6)
     End If
    End If
  Next
.Range("k2").Resize(n, 6) = brr   '结果输出到k2单元格
End With
MsgBox "材料自动统计已完成!", vbInformation, "V1.0"
End Sub




原EXCEL格式截图NEW.png

代码注释.rar

1.21 KB, 下载次数: 9

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-2-5 17:43 | 显示全部楼层
发表成功没哦?杂没人看呢

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-2-5 21:02 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-2-5 21:41 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2020-2-5 22:29 来自手机 | 显示全部楼层
zgjess 发表于 2020-2-5 21:41
顶起来啊,兄弟

提问的问题应该“小而单纯”,抓住不会,或不能理解的地方提问,,,,不能太笼统冗杂

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-2-6 09:45 | 显示全部楼层
白云无尽9987 发表于 2020-2-5 22:29
提问的问题应该“小而单纯”,抓住不会,或不能理解的地方提问,,,,不能太笼统冗杂


TA的精华主题

TA的得分主题

发表于 2020-2-6 09:50 | 显示全部楼层
本帖最后由 microyip 于 2020-2-6 09:52 编辑

只要学点基础知识,就不需要注释,如果不学,注释也是白费。不是没人看,估计大家都懒得搭理你

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-2-6 14:45 | 显示全部楼层
microyip 发表于 2020-2-6 09:50
只要学点基础知识,就不需要注释,如果不学,注释也是白费。不是没人看,估计大家都懒得搭理你

牛人牛人,跨行业了,基础差,注释有用,我看注释就知道意思

TA的精华主题

TA的得分主题

发表于 2020-2-6 14:51 | 显示全部楼层
zgjess 发表于 2020-2-6 14:45
牛人牛人,跨行业了,基础差,注释有用,我看注释就知道意思

不存在跨不跨行问题,只有学不学问题。我读书的行业,毕业后接触的时间很短,到各行去打工时间很长,去到新一个行业时候,不懂,学就是咯,天无绝人之路

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-2-6 17:34 | 显示全部楼层
microyip 发表于 2020-2-6 14:51
不存在跨不跨行问题,只有学不学问题。我读书的行业,毕业后接触的时间很短,到各行去打工时间很长,去到 ...

能帮就帮,没必要花很多时间去研究太深与自己专业关系不大新东西啊,我不是全能的,你怎么不去学习研究怎么杀新型肺炎病毒,天无绝人之路。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关注官方微信,每天学会一个新技能

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

GMT+8, 2020-4-4 20:42 , Processed in 0.075623 second(s), 17 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2020 Wooffice Inc.

   

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

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

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