ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 求助VBA 代码合并运行

[复制链接]

TA的精华主题

TA的得分主题

发表于 2022-11-18 19:08 | 显示全部楼层 |阅读模式
本帖最后由 军生 于 2022-11-18 22:03 编辑

test1与test2VBA合并

Sub test1()
    Cells.Select
   Worksheets("出荷扫描查询").Range("$A$1:$O$10000").RemoveDuplicates Columns:=Array(1, 2, 3, 4, 5, 6 _
        , 7, 8, 9, 10, 11, 12, 13, 14, 15), Header:=xlYes
End Sub




Sub test2()
  Dim r%, i%
  Dim arr, brr
  Dim d As Object
  Application.ScreenUpdating = False
  Application.DisplayAlerts = False
  Set d = CreateObject("scripting.dictionary")
  Set d1 = CreateObject("scripting.dictionary")
  With Worksheets("出荷扫描查询")
    .AutoFilterMode = False
    r = .Cells(.Rows.Count, 1).End(xlUp).Row
    arr = .Range("a2:o" & r)
    For i = 1 To UBound(arr)
      xm = Left(arr(i, 9), 6) & "+" & Right(arr(i, 1), 2)
      If Not d.exists(xm) Then
        Set d(xm) = CreateObject("scripting.dictionary")
      End If
      d(xm)(arr(i, 6)) = d(xm)(arr(i, 6)) + Val(arr(i, 8))
    Next
  End With
  
  With Worksheets("南北库打印签收单")
    cs = Replace(.Range("e5"), "J", "3")
    .Range("o11:o20") = Empty
    arr = .Range("a11:q20")
    For i = 1 To UBound(arr)
      If arr(i, 9) * arr(i, 10) <> arr(i, 11) Then
        If Len(arr(i, 2)) <> 0 Then
          pf = Left(arr(i, 2), 6)
          xm = pf & "+" & Format(cs, "00")
          d1.RemoveAll
          If d.exists(xm) Then
            For Each bb In d(xm).keys
              d1(d(xm)(bb)) = d1(d(xm)(bb)) + 1
            Next
            ss = ""
            For Each bb In d1.keys
              ss = ss & "+" & bb & "*" & d1(bb)
            Next
            arr(i, 15) = Mid(ss, 2)
          End If
        End If
      End If
    Next
    .Range("o11").Resize(UBound(arr), 1) = Application.Index(arr, 0, 15)
  End With
End Sub


代码优化运行VBA.rar

135.25 KB, 下载次数: 9

TA的精华主题

TA的得分主题

发表于 2022-11-19 00:03 | 显示全部楼层
如果先执行 test1:可以在 text1 最后加上 Call test2,也可以在 test2 最前面加上 Call test1
如果先执行 test2:方法同上

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-11-19 05:25 来自手机 | 显示全部楼层
E风卍行H 发表于 2022-11-19 00:03
如果先执行 test1:可以在 text1 最后加上 Call test2,也可以在 test2 最前面加上 Call test1
如果先执行 ...

试了,但没有成功,原因E5单元格,不让录入

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-11-19 10:42 | 显示全部楼层
E风卍行H 发表于 2022-11-19 00:03
如果先执行 test1:可以在 text1 最后加上 Call test2,也可以在 test2 最前面加上 Call test1
如果先执行 ...

能帮助修正一下吗?

TA的精华主题

TA的得分主题

发表于 2022-11-19 10:54 | 显示全部楼层
建议楼主结合附件内容,描述下具体要做什么以及怎么做

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-11-19 11:07 来自手机 | 显示全部楼层
让两段代码合并在一个模块中。

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-12-4 15:24 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-20 14:39 , Processed in 0.032731 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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