ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 麻烦优化VBA代码

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-3-3 18:07 | 显示全部楼层

找不到工程库,什么原因

TA的精华主题

TA的得分主题

发表于 2023-3-3 18:21 | 显示全部楼层
zw0713 发表于 2023-3-3 18:07
找不到工程库,什么原因

只有字典没有其它的,没有其它的引用库.不存在这个问题的。

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-3-3 18:25 | 显示全部楼层
suntao2000 发表于 2023-3-3 18:21
只有字典没有其它的,没有其它的引用库.不存在这个问题的。

单击领料1显示找不到工程或库

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-3-3 19:10 | 显示全部楼层
zw0713 发表于 2023-3-3 18:25
单击领料1显示找不到工程或库

I列的订单号查找的,当I列订单号为空值时,就为空

TA的精华主题

TA的得分主题

发表于 2023-3-4 09:52 | 显示全部楼层
本帖最后由 suntao2000 于 2023-3-4 09:56 编辑
zw0713 发表于 2023-3-3 18:25
单击领料1显示找不到工程或库

我这边运行的没问题,你可以查看代码,然后用F8一步一步试下哪句出错了

顺便把代码贴出来,看下其它朋友有没有人发现问题出在哪里?

Sub 领料1()
    Dim a, d1, d2, ar, br, i&, m$
    a = Sheets(32).UsedRange
    Set d1 = CreateObject("Scripting.Dictionary")
    Set d2 = CreateObject("Scripting.Dictionary")
    For i = 2 To UBound(a)
        If a(i, 2) <> "" And Not d1.Exists(a(i, 2)) Then
            d1(a(i, 2)) = a(i, 1) & "|" & a(i, 2) & "|" & a(i, 3) & "|" & a(i, 4) & "|" & a(i, 5)
            ReDim ar(1 To 5, 1 To 1)
            ar(1, 1) = a(i, 11): ar(2, 1) = a(i, 12): ar(4, 1) = a(i, 13): ar(5, 1) = a(i, 14)
            d2(a(i, 2)) = ar
   
        Else
            ar = d2(d1.keys()(d1.Count - 1))
            n = UBound(ar, 2)
            ReDim Preserve ar(1 To 5, 1 To n + 1)
            ar(1, n + 1) = a(i, 11): ar(2, n + 1) = a(i, 12): ar(4, n + 1) = a(i, 13): ar(5, n + 1) = a(i, 14)
            d2(d1.keys()(d1.Count - 1)) = ar
        End If
    Next
    With Sheets(33)
        For i = 0 To d1.Count - 1
            m = d1.keys()(i)
            br = Split(d1(m), "|")
            .Cells(i * 27 + 5, 7) = br(0)
            .Cells(i * 27 + 4, 9) = br(1)
            .Cells(i * 27 + 6, 2) = br(2)
            .Cells(i * 27 + 5, 2) = br(3)
            .Cells(i * 27 + 7, 4) = br(4)
            ar = d2(m)
            ReDim Preserve ar(1 To 5, 1 To 17)
            ar = Application.Transpose(ar)
            ReDim Preserve ar(1 To 17, 1 To 14)
            .Cells(i * 27 + 9, 1).Resize(UBound(ar), UBound(ar, 2)) = ar
        Next
    End With
End Sub

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

本版积分规则

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

GMT+8, 2024-11-18 19:42 , Processed in 0.031699 second(s), 5 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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