ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] SUMPRODUCT公式计数太慢改用VBA,求指点。

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-4-25 18:15 | 显示全部楼层 |阅读模式
各位老师,帮看看哪里错了,谢谢。附件中分析表2是用SUMPRODUCT公式计算的结果,因为数据多用公式太慢。
Sub 汇总() '汇总按钮
Dim n%, C%, k%, nn, m, h
Dim x%, i&, Arr, Brr, j&, Crr
Dim Drr, Err
Dim rq$, dw$
Dim qdc, zdc As Single
Dim ar(), br()
Dim mi, ii, y, qd, zd, qd1, zd1 As Integer
Dim xm As String
Dim strsql, myiic, nyr As String
Dim AllCells As Range
On Error Resume Next   '忽略错误
Application.ScreenUpdating = False

Set Sht = Worksheets("分析汇总")

Sht.[G10:AC65536].ClearContents '清除内容
Brr = Sht.[A7].CurrentRegion
ReDim Crr(1 To UBound(Brr) - 3, 1 To 24) '数组空间(行,列)
Arr = Sheets("动态病害").[A1].CurrentRegion
Drr = Sheets("静态病害").[A1].CurrentRegion

For j = 4 To UBound(Brr) '从4行开始循环汇总
    qd = Brr(j, 4): zd = Brr(j, 5) '起终里程等于Brr数组的第j行第4、5列
    dw = Brr(j, 1) & Brr(j, 2) '线名加行别等于Brr数组的第j行第1、2列合并
    n = n + 1 '记录汇总表到的行

    For i = 2 To UBound(Arr) '统计“动态数据”各级别个数

        If Arr(i, 3) & Arr(i, 4) = dw And Arr(i, 5) >= qd And Arr(i, 5) < zd Then '如果线名加行别相同则

            C = cx(Arr(i, 6) & Arr(i, 9)) 'C返回汇总表中同统计项目所在列,Arr(i, 2)为超限表中类型,cx为自定义函数
            Crr(n, C) = Crr(n, C) + 1


        End If

    Next

Next
Application.ScreenUpdating = True
End Sub

动静态病害数据分析.rar

477.68 KB, 下载次数: 11

附件

TA的精华主题

TA的得分主题

发表于 2018-4-25 18:38 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
怎么没有写入工作表的语句
头像被屏蔽

TA的精华主题

TA的得分主题

发表于 2018-4-25 21:13 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-4-26 08:54 | 显示全部楼层
朱荣兴 发表于 2018-4-25 21:13
vba数组+字典可以搞定,但是,比较麻烦,非一时之功
并且,有个地方不明:d列和e列,其他行都是-0.025,只 ...

0.05和0.025根据需要设置

TA的精华主题

TA的得分主题

发表于 2018-4-26 11:07 | 显示全部楼层


汇总的表格内有重复的项,这样用字典得到的结果也会是重复值,另:动态表格中没有“终点里程”数据,如果用字典,关键字将无法匹配,建议加上一列“终点里程”及各个项所对应的值
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

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

GMT+8, 2024-4-23 14:41 , Processed in 0.040580 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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