macro que inverte números

2

Eu preciso de ajuda para descobrir isso. Eu criei um pequeno script que altera um valor em uma célula para um positivo se o número for negativo e vice-versa. Por exemplo, se o valor for 100, o script mudará para -100 ou, se -100, para 100. Consegui fazê-lo funcionar para uma célula, mas agora gostaria de ser incluído em um intervalo de células, por exemplo, células de B33 a B50. Agradecemos antecipadamente.

Sub Sing_Change()

If Range("E9") > 0 Then
    Range("E9") = -(Range("E9"))
    Else
    Range("E9") = Abs(Range("E9"))
End If

End Sub
    
por Eric 10.11.2017 / 21:47

2 respostas

4

Código muito básico para percorrer um intervalo especificado.

Sub test()

    Set myrange = Range("A1:A2") 'Set range here

    For Each cell In myrange
        'your code here e.g. cell.value = -cell.value or whatever
    Next cell

End Sub
    
por 10.11.2017 / 22:23
1

Se você quiser evitar o loop, use uma única linha com os colchetes [] , que solicitam a macro Avaliar o que você deseja fazer. Tal como acontece com todos os grandes poderes, ele vem com grandes responsabilidades.

[B33:B50] = [-B33:B50]
    
por 11.11.2017 / 02:27