ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

新人求助,代码执行时出现死机,为什么?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-5-2 09:27 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
各路大神,本人小白,刚接触VBA。现在有个文件需要处理,要求查找“商品名称”与“型号”相同的所有行里,“原价”+“利润”最大的那个行,并将这行内容输出到一个新建的工作表中。如出现“原价”+“利润”相等,则输出第一次出现的那行数据。本人用我拙劣的方法,写了写代码但运行死机,不知道是不是死循环,还是系统资源消耗殆尽造成的,求大神们指导。代码如下:
Sub 求忙时()
Dim Brr(1 To 10000, 1 To 1000) '构造一个数组,行数足够多'
Dim i '定义变量行数和列数'
Dim lie, l As Byte
Dim arr, x As Long, sr As String, k, m As Integer
Set d = CreateObject("scripting.dictionary") '创建一个字典,
k = 1
arr = Sheets("原始数据").UsedRange '将数据区域输入数组'
For x = 1 To UBound(arr) '在数组内部循环
sr = arr(x, 1) & "-" & arr(x, 2) '因为是两个条件做关键字,需要将两列内容联合'
If d.Exists(sr) Then '如果关键字存在就累加数据
i = d(sr) '条目是行数
lie = 3
m = arr(i, 3) + arr(i, 4)
n = Brr(k, 3) + Brr(k, 4)
Do While lie <= UBound(arr, 2)
If m > n Then
Brr(k, lie) = arr(i, lie) '最大值写入数组'
lie = lie + 1
end if
Loop
Else
k = k + 1 '如果关键字不存在计数器加1'
d(sr) = k '将关键字的条目设为行数,方便以后取数
Brr(k, 1) = arr(x, 1) '将数据区域的前两个输入到Brr数组
Brr(k, 2) = arr(x, 2)
l = 3
Do While l <= UBound(arr, 2)
Brr(k, l) = arr(x, l) '将数据区域的其他数据输入到Brr数组
l = l + 1
Loop
End If
Next x
l = UBound(arr, 2)
Worksheets.Add
  Range("a1").Resize(k, l) = Brr '将Brr数组导入到单元格'
  Set arr = Nothing
End Sub



新建 Microsoft Excel 工作表.zip

7.06 KB, 下载次数: 4

TA的精华主题

TA的得分主题

发表于 2018-5-2 10:08 | 显示全部楼层
看你的数据是不是原价最高那一行提取出来?你还是加我微信:我帮你搞定

TA的精华主题

TA的得分主题

发表于 2018-5-2 10:09 | 显示全部楼层
微信名与我的网名一致!!!!
头像被屏蔽

TA的精华主题

TA的得分主题

发表于 2018-5-2 11:16 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
头像被屏蔽

TA的精华主题

TA的得分主题

发表于 2018-5-2 11:17 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

TA的精华主题

TA的得分主题

发表于 2018-5-2 11:28 | 显示全部楼层
写好了,你看看,希望对你有帮助!!! 提取同商品型号利润最高.zip (128.7 KB, 下载次数: 3)

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-5-26 13:50 | 显示全部楼层
多谢,后来我实在憋得不行了,用SQL语句解决了,VBA数组限制太多。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-26 09:34 , Processed in 0.056451 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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