Как обновить макрос при изменении ячейки в VBA - PullRequest
0 голосов
/ 31 января 2019

Итак, я новичок в VBA, и я хотел перевести кучу рабочих часов в доллары, умножив их на почасовую ставку и наоборот.Однако я не уверен, как справиться с изменением почасовой ставки.Итак, в настоящее время мой код выглядит следующим образом:

Sub dollarHour()

    Dim hrs As Range

    Set hrs = Range("D3:N33")

    For Each cell In hrs
        If cell.NumberFormat = "0.00" Then
            cell.Value = cell * Range("P37")
            cell.NumberFormat = "_($* #,##0.00_);_($* (#,##0.00);_($* ""-""??_);_(@_)"

        Else
            cell.Value = cell / Range("P37")
            cell.NumberFormat = "0.00"

        End If

    Next

End Sub

Таким образом, в основном моя проблема заключается в том, что «P37» (множитель доллара) можно изменить, но это не повлияет на ячейки, пока я снова не запустите макрос, который меняетдо первоначальных рабочих часов (это то, чего я не хочу).Поэтому, если я изменил «P37», например, с 25 до 26 долларов, я хочу, чтобы ячейки в часах отражали это изменение.Любая помощь будет оценена.

1 Ответ

0 голосов
/ 31 января 2019

Использовать событие Worksheet_Change.Это будет запускать ваш макрос каждый раз, когда изменяется $ P $ 37.

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$P$37" Then
        dollarhour
    End If
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...