前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用VBA给多组重复值添加序号

使用VBA给多组重复值添加序号

作者头像
fanjy
发布2024-06-04 19:38:32
590
发布2024-06-04 19:38:32
举报
文章被收录于专栏:完美Excel完美Excel

标签:VBA

这个示例很简单,主要是给有兴趣学习VBA的朋友提供研究代码的素材,当然如果有应用场景,那正好适用。

如下图1所示,左侧的数据区域中存在很多重复值,现在要给相同的值添加序号,但每组相同值的序号都要从1开始编号,如图中右侧所示。

图1

代码很简单,如下:

代码语言:javascript
复制
Sub AddNumber()
 Dim strOldValue As String
 Dim rngCell As Range
 Dim rngData As Range
 Dim varSearch As Variant
 Dim i As Long
 Dim j As Long
 
 Set rngData = ActiveSheet.Range("B2:B9")
 varSearch = Array("白鹤滩", "三峡")
 
 For j = LBound(varSearch) To UBound(varSearch)
   i = 1
   For Each rngCell In rngData
     strOldValue = rngCell.Value
     rngCell.Replace What:=varSearch(j), Replacement:=varSearch(j) & i
     If strOldValue <> rngCell.Value Then i = i + 1
   Next rngCell
 Next j
End Sub

上述代码直接在原数据区域添加序号。

也可以使用下面的代码:

代码语言:javascript
复制
Sub AddNumber2()
 Dim varSearch As Variant
 Dim i As Long
 Dim m As Long
 Dim n As Long
 
 varSearch = ActiveSheet.Range("B2:B9")
 
 For i = 1 To UBound(varSearch)
   If InStr("白鹤滩三峡", varSearch(i, 1)) Then
     If varSearch(i, 1) = "白鹤滩" Then m = m + 1
     If varSearch(i, 1) = "三峡" Then n = n + 1
     varSearch(i, 1) = varSearch(i, 1) & IIf(varSearch(i, 1) = "白鹤滩", m, n)
   End If
 Next i
 ActiveSheet.Range("D2:D9") = varSearch
End Sub

上述代码将修改后的数据存储在数组中,然后将其复制到工作表指定区域。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-05-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据保险箱
数据保险箱(Cloud Data Coffer Service,CDCS)为您提供更高安全系数的企业核心数据存储服务。您可以通过自定义过期天数的方法删除数据,避免误删带来的损害,还可以将数据跨地域存储,防止一些不可抗因素导致的数据丢失。数据保险箱支持通过控制台、API 等多样化方式快速简单接入,实现海量数据的存储管理。您可以使用数据保险箱对文件数据进行上传、下载,最终实现数据的安全存储和提取。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档