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

2021-02-22 11:28:59 浏览数 (1)

excelperfect

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

图1

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

代码语言:javascript复制
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复制
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

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

vba

0 人点赞