2

Мне нужна помощь, чтобы понять это. Я создал небольшой скрипт, который изменяет значение в ячейке на положительное, если число отрицательное, и наоборот. Например, если значение равно 100, сценарий изменит его на -100 или, если это -100, изменится на 100. Я смог заставить его работать на одну ячейку, но теперь я хотел бы включить ряд ячеек, например, все ячейки от B33 до B50. Заранее спасибо.

Sub Sing_Change()

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

End Sub

2 ответа2

4

Очень простой код для цикла через указанный диапазон.

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
1

Если вы хотите избежать цикла, вы можете использовать одну строку с квадратными скобками [] , которые просят макрос оценить, что вы хотите сделать. Как и со всеми великими силами, это идет с большими обязанностями.

[B33:B50] = [-B33:B50]

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .