ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 求各位大佬怎么自动生成领料单

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-6-15 22:31 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

左右开弓  同时练手 ?

TA的精华主题

TA的得分主题

发表于 2024-6-16 09:15 | 显示全部楼层
本帖最后由 咔咔乱坠 于 2024-6-16 09:22 编辑

函数,参与一下
详见附件

2.png

测试.zip

12.38 KB, 下载次数: 4

TA的精华主题

TA的得分主题

发表于 2024-6-16 09:27 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-6-16 21:00 来自手机 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
gwjkkkkk 发表于 2024-6-15 19:35
Option Explicit

Sub TEST1()

好试试非常感谢老师

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-6-17 07:57 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

非常感谢老师

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-6-17 07:58 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-6-17 08:07 | 显示全部楼层
咔咔乱坠 发表于 2024-6-16 09:15
函数,参与一下
详见附件

厉害呀,这些公式貌似我都没学过

TA的精华主题

TA的得分主题

发表于 2024-6-17 08:25 | 显示全部楼层
练手
  1. Rem 过程开始 X改为你想要的名字
  2. Public Sub X()
  3.     Rem 代码从这里开始写
  4.     Rem 声明工作簿变量wb和工作表变量sht
  5.     Rem 创建一个字典dic
  6.     Set dic = CreateObject("Scripting.Dictionary")
  7.     Dim wb As Workbook, sht As Worksheet
  8.     Rem 设置wb为当前工作簿
  9.     Set wb = Application.ThisWorkbook
  10.     Rem 设置sht为指定名称的工作表,引号内填写工作表名称
  11.     Set sht = wb.Worksheets("基础数据列表")
  12.     Rem 设置psht为工作表,在引号内填写工作表名称
  13.     Set psht = wb.Worksheets("领料模板")
  14.     Rem 使用With语句,方便对工作表Sht进行多次操作
  15.     With sht
  16.         '.Usedrange.Offset(1).clear
  17.         Rem 获取列A中最大数据行的行号
  18.         eRow = .Cells(.Rows.Count, 1).End(xlUp).Row
  19.         Rem 设置范围从A2开始到Z列的eRow行结束
  20.         Set Rng = .Range("A2:C" & eRow)
  21.         Rem 将范围Rng的值赋给数组Arr
  22.         arr = Rng.Value
  23.         Rem 变量 i 从数组Arr最小索引开始,遍历至其最大索引
  24.         For i = LBound(arr) To UBound(arr)
  25.             Key = CStr(arr(i, 3))
  26.             Rem 若字典dic中不存在键key 则执行
  27.             If Not dic.Exists(Key) Then
  28.                 Rem 创建一个字典d
  29.                 Set d = CreateObject("Scripting.Dictionary")
  30.             Else
  31.                 Rem 若字典dic中存在键key 则执行
  32.                 Set d = dic(Key)
  33.             End If
  34.             d(i) = Array(arr(i, 1), arr(i, 2))
  35.             Set dic(Key) = d
  36.         Next i
  37.     End With
  38.     For Each k In dic
  39.         Rem 若后续代码出错,忽略错误继续执行
  40.         On Error Resume Next
  41.         'vvvvvvvvvvvvvv
  42.         Rem 可能出错的语句放这里
  43.         Rem 关闭警示弹窗
  44.         Application.DisplayAlerts = False
  45.         wb.Worksheets(k).Delete
  46.         Rem 恢复警示弹窗
  47.         Application.DisplayAlerts = True
  48.         '^^^^^^^^^^
  49.         Rem 若前面代码出错,恢复对错误的捕获
  50.         On Error GoTo 0
  51.         psht.Copy after:=wb.Worksheets(wb.Worksheets.Count)
  52.         Rem 设置osht为工作表
  53.         Set osht = wb.Worksheets(wb.Worksheets.Count)
  54.         With osht
  55.             .Name = k
  56.             .Range("a4").Value = k
  57.             Set d = dic(k)
  58.             If d.Count > 5 Then .Range("a14").Resize(d.Count - 5, 1).EntireRow.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
  59.             Rem 设置范围为A2单元格
  60.             Set Rng = .Range("A9").Resize(d.Count, 2)
  61.             Rem 如果字典有元素,则将字典的项目转置后输出到指定范围Rng
  62.             Rng.Value = WorksheetFunction.Transpose(WorksheetFunction.Transpose(d.items))
  63.         End With
  64.     Next k
  65. End Sub
  66. Rem 过程结束
复制代码

TA的精华主题

TA的得分主题

发表于 2024-6-17 09:01 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2024-6-17 10:54 | 显示全部楼层

感觉没必要用with啊,模版复制后,当前活动工作表就是需要填入数据的表格,Range对象的操作都不需要前缀的
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

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

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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