ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: 口风琴

[已解决] 根据层级关系及前缀名,自动分派新文件名称

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-10-21 21:36 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
一把小刀闯天下 发表于 2017-10-21 17:00
按层级单元格的格式来分:MsgBox [a20].NumberFormatLocal   ,然后按"┊"进行split统计ubound就能分层级 ...

游侠好,层级关系是已知的,已经用1-4分清了层级,现在就是遍历树的形式为成员分派名字

TA的精华主题

TA的得分主题

发表于 2017-10-21 22:15 | 显示全部楼层
  1. Sub 按钮19_Click()
  2.     Set d = CreateObject("scripting.dictionary")
  3.     arr = [a1].CurrentRegion
  4.     For j = 0 To 3
  5.         d(j) = 0
  6.     Next j
  7.     For j = 2 To UBound(arr)
  8.         For i = 0 To 3
  9.             If InStr(arr(j, 1), i) > 0 Then
  10.                 For k = 0 To i - 1
  11.                 Next k
  12.                 d(i) = d(i) + 1
  13.                 For k = i + 1 To 3
  14.                     d(k) = 0
  15.                 Next k
  16.                 arr(j, 4) = "YTKQFMS-" & Format(d(0), "0000") & "-" & Format(d(1), "000") & "-" & Format(d(2), "000") & "-" & d(3)
  17.                 Exit For
  18.             End If
  19.         Next i
  20.     Next j
  21.     [a1].CurrentRegion = arr
  22. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2017-10-21 22:17 | 显示全部楼层
楼主的需求一直没有看明白,所以在附件自己做了一个模拟,
按钮下面就是字段的对应
但愿能为楼主提供一个思路吧

自动指派名字.zip

85.21 KB, 下载次数: 14

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-10-21 23:37 | 显示全部楼层
希望这次能够把逻辑描述清楚,烦劳版主支持

2017-10-21_223924.jpg

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-10-21 23:37 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-10-21 23:41 | 显示全部楼层
liulang0808 发表于 2017-10-21 22:17
楼主的需求一直没有看明白,所以在附件自己做了一个模拟,
按钮下面就是字段的对应
但愿能为楼主提供一个 ...

感谢版主的热心帮助,是我没把逻辑表述清楚

TA的精华主题

TA的得分主题

发表于 2017-10-22 08:36 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
口风琴 发表于 2017-10-21 23:41
感谢版主的热心帮助,是我没把逻辑表述清楚

12楼模拟了一个,楼主自行修改看看

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-10-22 10:43 | 显示全部楼层
liulang0808 发表于 2017-10-22 08:36
12楼模拟了一个,楼主自行修改看看

版主的嵌套循环用出了境界,修改后序号递增可以实现,但是回到原级别我没处理好,请版主过目

  1. Sub 按钮_Click()
  2.     Set d = CreateObject("scripting.dictionary")
  3.     arr = [a1].CurrentRegion
  4.     Range("E2:E80").Clear
  5.     For j = 0 To 3
  6.         d(j) = 0
  7.     Next j
  8.     For j = 3 To UBound(arr)
  9.         If Cells(j, 4) = "外购件" Or Cells(j, 4) = "标准件" Then
  10.             arr(j, 5) = Cells(j, 2)
  11.         Else
  12.             For i = 1 To 4
  13.                 If InStr(arr(j, 1), i) > 0 Then
  14.                     
  15.                     If UCase(Cells(j, 3)) = "SLDASM" Then
  16.                         
  17.                         Debug.Print d(0), d(1), d(2), d(3)
  18.                         
  19.                         d(i - 1) = d(i - 1) + 1
  20.                         For k = i To 3
  21.                             d(k) = 0
  22.                         Next k
  23.                         
  24.                     Else
  25.                     
  26.                     For k = i - 1 To 2
  27.                             d(k) = 0
  28.                         Next k
  29.                     
  30.                         d(3) = d(3) + 1
  31.                                                
  32.                         
  33.                     End If
  34.                     Debug.Print d(0), d(1), d(2), d(3)
  35.                     arr(j, 5) = "YTKQFMS-60" & Format(d(0), "00") & Format(d(1), "-0") & Format(d(2), "00") & "-" & Format(d(3), "000") & "-0"
  36.                     Exit For
  37.                 End If
  38.             Next i
  39.         End If
  40.     Next j
  41.     [a1].CurrentRegion = arr
  42. End Sub
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-10-22 10:45 | 显示全部楼层
请以此份附件为准 指派名称.rar (59.02 KB, 下载次数: 7)

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-10-22 10:51 | 显示全部楼层
图中黄色底纹填充的位置是没处理好的,没有准确回到上一级的序号
2017-10-22_104833.jpg
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-4-27 04:00 , Processed in 0.044313 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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