Excel精英培训网

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

[已解决]请教怎样编写VBA码实现自动编号功能

[复制链接]
发表于 2013-4-12 16:29 | 显示全部楼层 |阅读模式
请教,怎样编写VBA码,实现自动编号功能,具体要求见附件中,
最佳答案
2013-4-13 00:46
  1. Sub test()
  2.     Dim A, B(1 To 99), i%, j%
  3.     A = Sheet1.Range("a1").CurrentRegion
  4.     For i = 2 To UBound(A)
  5.         B(A(i, 2)) = B(A(i, 2)) + 1
  6.     Next i

  7.     For i = 1 To UBound(B)
  8.         If B(i) > 3 Then
  9.             j = j + 1
  10.             B(i) = j
  11.         Else
  12.             B(i) = 0
  13.         End If
  14.     Next i

  15.     For i = 2 To UBound(A)
  16.         If B(A(i, 2)) > 0 Then A(i, 6) = B(A(i, 2))
  17.     Next i
  18.     [f1].Resize(UBound(A)) = Application.Index(A, 0, 6)
  19. End Sub

复制代码
自动分箱号2.rar (11.32 KB, 下载次数: 22)

自动分箱号.zip

7.42 KB, 下载次数: 18

自动编号

 楼主| 发表于 2013-4-12 23:39 | 显示全部楼层
不知道是否已说明清楚,也许是太复杂了,这个问题我想了很久,也没有做出来。不知那位高手能否帮忙解决?先谢谢了。
回复

使用道具 举报

发表于 2013-4-13 00:46 | 显示全部楼层    本楼为最佳答案   
  1. Sub test()
  2.     Dim A, B(1 To 99), i%, j%
  3.     A = Sheet1.Range("a1").CurrentRegion
  4.     For i = 2 To UBound(A)
  5.         B(A(i, 2)) = B(A(i, 2)) + 1
  6.     Next i

  7.     For i = 1 To UBound(B)
  8.         If B(i) > 3 Then
  9.             j = j + 1
  10.             B(i) = j
  11.         Else
  12.             B(i) = 0
  13.         End If
  14.     Next i

  15.     For i = 2 To UBound(A)
  16.         If B(A(i, 2)) > 0 Then A(i, 6) = B(A(i, 2))
  17.     Next i
  18.     [f1].Resize(UBound(A)) = Application.Index(A, 0, 6)
  19. End Sub

复制代码
自动分箱号2.rar (11.32 KB, 下载次数: 22)
回复

使用道具 举报

 楼主| 发表于 2013-4-13 07:41 | 显示全部楼层
”爱疯“太强了,佩服,非常感谢,有机会要好好向您学习。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 13:24 , Processed in 0.134435 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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