ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 如何根据填写的内容生成库位码?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-4-6 19:20 | 显示全部楼层 |阅读模式
想实现的目标就是在sheet1页面填写好数据,然后按照格式生成数据写到sheet2页面的A列。
捕获.PNG

KWM.zip

7.29 KB, 下载次数: 16

TA的精华主题

TA的得分主题

发表于 2024-4-6 19:26 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
没明白楼主的取数规则。怎么就生成了那些库位码了。

TA的精华主题

TA的得分主题

发表于 2024-4-6 20:10 | 显示全部楼层
  1. Sub test0() 'A、B 两列不知有变化木有,现写法基于两列相同
  2.   Dim ar, br(100000, 0), cr(1 To 4) As String
  3.   Dim i As Long, j As Long, k As Long, l As Long, m As Long
  4.   ar = Range("A1").CurrentRegion.Resize(, 8).Value
  5.   For i = 2 To UBound(ar)
  6.     cr(1) = ar(i, 1)
  7.     For j = ar(i, 3) To ar(i, 4)
  8.       cr(2) = j
  9.       For k = ar(i, 5) To ar(i, 6)
  10.         cr(3) = k
  11.         For l = ar(i, 7) To ar(i, 8)
  12.           cr(4) = l
  13.           br(m, 0) = Join(cr, "-")
  14.           m = m + 1
  15.         Next
  16.       Next
  17.     Next
  18.   Next
  19.   Range("N2").Resize(m) = br
  20. End Sub
复制代码

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-4-6 20:20 来自手机 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
笛卡尔组合。。。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-4-6 20:26 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2024-4-6 20:34 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2024-4-6 21:19 | 显示全部楼层
  1. Sub test()
  2.     Dim i%, z%, j%, k%, l%, n%, arr(), brr()
  3.     Dim d As Object, d1 As Object
  4.     Set d = CreateObject("Scripting.Dictionary")
  5.     Set d1 = CreateObject("Scripting.Dictionary")
  6.     letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
  7.     For i = 1 To Len(letters)
  8.         d(Mid(letters, i, 1)) = i
  9.         d1(i) = Mid(letters, i, 1)
  10.     Next i
  11.     With Sheet1
  12.         arr = .Range("a1").CurrentRegion
  13.     End With
  14.     For i = 2 To UBound(arr)
  15.         For z = d(arr(i, 1)) To d(arr(i, 2))
  16.             For j = arr(i, 3) To arr(i, 4)
  17.                 For k = arr(i, 5) To arr(i, 6)
  18.                     For l = arr(i, 7) To arr(i, 8)
  19.                         n = n + 1
  20.                         ReDim Preserve brr(1 To n)
  21.                         brr(n) = d1(z) & "-" & j & "-" & k & "-" & l
  22.                     Next
  23.                 Next
  24.             Next
  25.         Next
  26.     Next
  27.     With Sheet2
  28.         .Range("a1").Resize(.Rows.Count - 1, 1).ClearContents
  29.         .Range("a1").Resize(UBound(brr)) = Application.Transpose(brr)
  30.     End With
  31. End Sub
  32.    
复制代码

TA的精华主题

TA的得分主题

发表于 2024-4-6 21:20 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
不知道是不是这个意思

KWM.rar

20.84 KB, 下载次数: 4

TA的精华主题

TA的得分主题

发表于 2024-4-6 21:43 | 显示全部楼层
  1. Sub test()

  2. ar = Sheet1.Range("a1").CurrentRegion
  3. ReDim br(1 To 999999, 1 To 1)
  4. For i = 2 To UBound(ar)
  5.     s1 = VBA.Asc(ar(i, 1)): s2 = Asc(ar(i, 2))
  6.     For x1 = s1 To s2
  7.         For x2 = ar(i, 3) To ar(i, 4)
  8.             For x3 = ar(i, 5) To ar(i, 6)
  9.                 For x4 = ar(i, 7) To ar(i, 8)
  10.                     s = VBA.Chr(x1) & "-" & x2 & "-" & x3 & "-" & x4
  11.                     r = r + 1
  12.                     br(r, 1) = s
  13.                 Next
  14.             Next
  15.         Next
  16.     Next
  17. Next

  18. With Sheet2
  19.     .UsedRange.ClearContents
  20.     .Range("a1").Resize(r) = br
  21. End With
  22. End Sub
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-4-6 21:51 | 显示全部楼层
PQ  很方便!!!!!!!!!!!!!
捕获.PNG
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-17 20:20 , Processed in 0.052813 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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