Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 1295|回复: 4

请教用VB来下拉增加序号

[复制链接]
发表于 2022-4-27 16:32 | 显示全部楼层 |阅读模式
  请教一下各位,假设B2到B25行,当遇到有内容时自动在内容后面追加序号并下拉,遇到下一个内容后重新01开始,请问这样用VB是怎么写的呢?感谢! 0000.png

发表于 2022-4-27 17:12 | 显示全部楼层
本帖最后由 hasyh2008 于 2022-4-27 17:29 编辑

Sub 序号()
  Dim Rc%, Arr(), K%
  Arr = Sheet1.Range("A1").CurrentRegion

  For Rc = 2 To UBound(Arr)
    If Arr(Rc, 2) <> "" Then
       K = 1
       Arr(Rc, 3) = Arr(Rc, 2) & "01"
    Else
      K = K + 1
      Arr(Rc, 3) = VBA.Left(Arr(Rc - 1, 3), VBA.Len(Arr(Rc - 1, 3)) - 2) & Application.WorksheetFunction.Text(K, "00")
    End If
  Next Rc
  Sheet1.Range("A1").Resize(UBound(Arr), UBound(Arr, 2)) = Arr
End Sub

回复

使用道具 举报

 楼主| 发表于 2022-4-28 08:19 | 显示全部楼层
hasyh2008 发表于 2022-4-27 17:12
Sub 序号()
  Dim Rc%, Arr(), K%
  Arr = Sheet1.Range("A1").CurrentRegion

额,老师您好,这个理解刚好反了,我是想当A2只有一个内容时,后面的空格单元会向下下拉,遇到有一个单元格有内容又重新开始,是这个意思,并不是单独在内容上增加序号
回复

使用道具 举报

发表于 2022-4-29 22:01 | 显示全部楼层
本帖最后由 釜底抽薪 于 2022-4-29 22:06 编辑

学习
回复

使用道具 举报

发表于 2022-5-1 22:34 | 显示全部楼层
本帖最后由 hasyh2008 于 2022-5-1 22:37 编辑

Sub 序号()
  Dim Rc%, Arr(), K%, Str$
  Arr = Sheet1.Range("A1").CurrentRegion
  For Rc = 2 To UBound(Arr)
    If Arr(Rc, 2) <> "" Then
      K = 1
      Str = Arr(Rc, 2)
      Arr(Rc, 2) = Str & "01"
    Else
      K = K + 1
      Arr(Rc, 2) = Str & Application.WorksheetFunction.Text(K, "00")
    End If
  Next Rc
  Sheet1.Range("A1").Resize(UBound(Arr), UBound(Arr, 2)) = Arr
End Sub
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-9-21 22:22 , Processed in 0.646763 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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