Altera a célula adjacente onde uma célula corresponde a um determinado valor

1

Se eu tiver a seguinte tabela:

------------------
| X | helloworld |
------------------
| X | random1234 |
------------------
| X | random5678 |
------------------
| X | helloworld |
------------------
| X | random9123 |
------------------

Como posso definir o valor da primeira célula para a esquerda de cada ocorrência de helloworld para Y ?

Após o processamento, esperaria que o exemplo acima fosse:

------------------
| Y | helloworld |
------------------
| X | random1234 |
------------------
| X | random5678 |
------------------
| Y | helloworld |
------------------
| X | random9123 |
------------------

Para esclarecer, minha planilha contém milhares dessas ocorrências. Estou procurando uma operação em massa, em pseudocódigo:

for every row:
    if column_B = 'helloworld':
        column_A = 'X'
    if column_B = 'random':
        column_A = ...
    
por user2018084 29.07.2016 / 11:33

1 resposta

1

Este VBa faz isso.

Não há opção para desfazer, então faça um backup primeiro!

Sub WalkThePlank()

Dim updateColumn As String
updateColumn = "A"           'update this ye filthy seadog if needed! This be the first column

Dim contentColumn As String
contentColumn = "B"         'aye, scrub the deck and update if the "helloworld" isn't in column B

Dim startRow As Integer
startRow = 1                  'enter the start row or be fed to the sharks  

Do While (Range(contentColumn & startRow).Value <> "")

    Dim val As String
    val = Range(contentColumn & startRow).Value

    Select Case val

    Case "helloworld"
        Range(updateColumn & startRow).Value = "Y"

    Case Else
        Range(updateColumn & startRow).Value = "X" ' This is the "default value

    End Select        

    startRow = startRow + 1

Loop    

End Sub

Para adicionar outro caso, como se a palavra de pesquisa fosse Goodbyeworld, atualize o código para

    Select Case val

    Case "helloworld"
        Range(updateColumn & startRow).Value = "Y"

    Case "Goodbyeworld" ' CASE SENSITIVE!!!!
        Range(updateColumn & startRow).Value = "A"

    Case Else
        Range(updateColumn & startRow).Value = "X" ' This is the "default value

    End Select        

Como eu adiciono o VBA no MS Office?

Antes de

Apósolançamento

    
por 29.07.2016 / 12:04