ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[已解决] 按条件分级编号的问题,比较着急。

[复制链接]

TA的精华主题

TA的得分主题

发表于 2017-9-21 15:40 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 maomao218 于 2017-9-22 09:51 编辑

现在我遇到了这样一个问题,单位资产清查需要给资产编号,编号还必须是1、1-1、1-2.。。这样的,我自己写的代码只能将第一级的编号编号,后面的1-1、1-2、1-3就实现不了了,而且表格里的数据只有49行,实际有两三千行,而且有的是只有一级、有的有两级、有的有n多级,我不知道怎么编号了。

Sub 自动编号()
Dim a, b, c, d As Integer                    '定义四个变量
    a = 1

        For b = 6 To 50                     '设置b 6到100的循环
            If Not IsEmpty(Cells(b, 1)) Then '如果单元格b行1列不是空行则
                    Cells(b, 1) = a          'b行1列的值为a
                    Else                     '否则
                        a = a + 1
            End If
        Next b
End Sub
我写的是这样婶儿的。。


求助.zip

27.43 KB, 下载次数: 9

TA的精华主题

TA的得分主题

发表于 2017-9-21 16:08 | 显示全部楼层
用Split(编号,"-")得到编号数组,如果没有第二个参数的,就加“-1”,有就后面参数+1处理

TA的精华主题

TA的得分主题

发表于 2017-9-21 16:14 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-9-21 18:23 | 显示全部楼层
microyip 发表于 2017-9-21 16:08
用Split(编号,"-")得到编号数组,如果没有第二个参数的,就加“-1”,有就后面参数+1处理

...额 能加到我的代码里吗,我还不知道spilt怎么用啊 刚学了两三天

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-9-21 18:25 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-9-22 08:43 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-9-22 09:49 | 显示全部楼层
嘿嘿,嘿嘿嘿。。。我自己研究出来了~ 昨天脑子比较混乱 今天想了想
Sub 自动编号()
Dim a, b, c, d As Integer                    '定义四个变量
    a = 1
    c = 1
        For b = 6 To 56                     '设置b 6到100的循环
            If Not IsEmpty(Cells(b, 1)) Then
                Cells(b, 1) = a
                    a = a + 1
                    c = 1
                        Else
                            Do While IsEmpty(Cells(b, 1))
                                Cells(b, 1) = a - 1 & "-" & c
                                Loop
                                c = c + 1
                                If Not IsEmpty(Cells(b, 1)) Then
                                                                   End If
            End If
        Next b
            
End Sub
虽然比较笨,但是很使用~

TA的精华主题

TA的得分主题

发表于 2017-9-22 10:03 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
sorry,回复错贴
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

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

GMT+8, 2024-4-25 07:50 , Processed in 0.041742 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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