Ciclo de macro do Excel

0

Eu usei esta macro e funcionou bem, mas eu precisava de um pouco mais.

Eu tive que alterar LookAt:=xlWhole para LookAt:=xlPart e adicionar a formatação de cor. Agora, quando eu seleciono uma coluna, a Macro parece percorrer a coluna três vezes antes de terminar, por isso está fazendo substituições em triplicado.

O campo original é: 7555 incorporado no texto. A planilha de referência tem duas colunas, A tem 7555, B tem 77555. Quando a macro termina, muitos dos números agora são 777555, mas alguns estão corretos. Estranho!

Alguém pode ajudar com a edição desta macro para impedir que ela seja executada em loop?

Sub MultiReplace()
On Error GoTo errorcatch
Dim arrRules() As Variant

    Set rngCol1 = Sheets(strSheet).Range(strRules)
    Set rngCol2 = rngCol1.Offset(0, 1)
    arrRules = Application.Union(rngCol1, rngCol2)

    ' Set the CellFormat object to replace with green.
    With Application
        .ReplaceFormat.Interior.ColorIndex = 35
    End With

    For i = 1 To UBound(arrRules)
        Selection.Replace What:=arrRules(i, 1), Replacement:=arrRules(i, 2), _
            LookAt:=xlPart, MatchCase:=True, ReplaceFormat:=True
    Next i

errorcatch:
End Sub
    
por user275436 20.11.2013 / 03:56

0 respostas