Excel精英培训网

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

求助

[复制链接]
发表于 2022-5-12 08:11 | 显示全部楼层 |阅读模式
我先 框选 a3 到b16的 区域  让b 列  根据a列  来自动编号
当a列第一次出现收时  对应的b列编号 就是 001
当a列第二次出现收时  对应的b列编号 就是002
比如 在这个框选的区域 只有 6个收  那么 编号最后006
再开始 给付编号  第一次出现的付  编号 007
第二次出现的付  对应编号 008

1.png
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2022-5-12 08:46 | 显示全部楼层
本帖最后由 hasyh2008 于 2022-5-12 08:54 编辑

Sub 编号()
  Dim Arr
  Dim Rc%, K%
  Arr = ActiveSheet.Range("A1").CurrentRegion
  K = 1
  For Rc = 2 To UBound(Arr)
    If Arr(Rc, 1) = "收" Then
      Arr(Rc, 2) = Application.Text(K, "000")
      K = K + 1
    End If
  Next Rc
  For Rc = 2 To UBound(Arr)
    If Arr(Rc, 1) = "付" Then
      Arr(Rc, 2) = Application.Text(K, "000")
      K = K + 1
    End If
  Next Rc
  ActiveSheet.Range("A1").Resize(UBound(Arr, 1), UBound(Arr, 2)) = Arr
End Sub

工作簿1.rar

13.55 KB, 下载次数: 1

回复

使用道具 举报

发表于 2022-5-12 10:35 | 显示全部楼层
本帖最后由 金樽空对月 于 2022-5-12 10:40 编辑
  1. Sub mynumber()
  2. Dim x%, y%, k%, ar, br
  3. ar = Range("a3:b" & Range("a100000").End(3).Row)
  4. br = Array("收", "付")
  5. For x = 0 To 1
  6.     For y = 1 To UBound(ar)
  7.         If ar(y, 1) = br(x) Then
  8.             k = k + 1
  9.             ar(y, 2) = "'" & Format(k, "000")
  10.         End If
  11.     Next y
  12. Next x
  13. Range("a3").Resize(k, 2) = ar
  14. End Sub
复制代码




编码.zip

108.09 KB, 下载次数: 6

回复

使用道具 举报

发表于 2022-5-12 11:44 | 显示全部楼层

高手!!学习了!!!!
回复

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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