前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >问与答94:如何替换多个相同的数据并依次编号?

问与答94:如何替换多个相同的数据并依次编号?

作者头像
fanjy
发布于 2021-02-22 03:28:59
发布于 2021-02-22 03:28:59
1.7K00
代码可运行
举报
文章被收录于专栏:完美Excel完美Excel
运行总次数:0
代码可运行

excelperfect

Q:我有一个工作表,我想将里面多个相同的数据进行替换,并按顺序依次编号,如何使用VBA代码实现?例如下图1的列B中有多个“完美Excel”,使用VBA代码将其替换为“excelperfect”并加上数字编号,即“excelperfect1”、“excelperfect2”、“excelperfect3”……等。

图1

A:使用Find方法和FindNext方法进行连续查找,将找到的数据进行替换并加上计数器当前的数字。代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Sub ReplaceAndAddNum()
    Dim rngLastCell As Range
    Dim rngFoundCell As Range
    Dim strFirstAddress As String
    Dim lngCount As Long
   
    On Error Resume Next
   
    With ActiveSheet.UsedRange
        Set rngLastCell = .Cells(.Cells.Count)
        Set rngFoundCell = .Find(What:="完美Excel",_
           After:=rngLastCell, _
           LookIn:=xlValues, _
           LookAt:=xlPart, _
           SearchOrder:=xlByColumns, _
           SearchDirection:=xlNext)
        If Not rngFoundCell Is Nothing Then
           strFirstAddress = rngFoundCell.Address
           lngCount = 1
           rngFoundCell.Value = "excelperfect" & lngCount
           Do
               Set rngFoundCell = .FindNext(rngFoundCell)
               lngCount = lngCount + 1
               rngFoundCell.Value = "excelperfect" & lngCount
           Loop Until rngFoundCell.Address = strFirstAddress
        EndIf
    End With
End Sub

或者,使用下面更简洁的代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Sub ReplaceAndAddNumPlus()
    Dim lngCount As Long
    On Error Resume Next
    lngCount= 1
    Do
       Cells.Find("完美Excel")= "excelperfect" & lngCount
       lngCount = lngCount + 1
    Loop Until Err.Number <> 0
End Sub

还有其他的方法,有兴趣的朋友可以自已尝试一下。

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验