Макрос, чтобы предупредить меня, когда ячейка меняет значение - всплывающее предупреждение - EXCEL - PullRequest
4 голосов
/ 04 мая 2010

Я хочу создать макрос, чтобы предупредить меня об изменении значения ячейки.Ячейки в этом конкретном столбце могут иметь значения «OVER» или «UNDER».Я хотел бы написать код, чтобы предупредить меня через всплывающее окно (сообщение: «Ячейка А пересекает (над)»), когда значение изменяется.

1 Ответ

1 голос
/ 04 мая 2010

Вы хотите подключиться к событию Worksheet_Change .
Как-то так должно начаться:

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Value = "OVER" Then
        MsgBox "Cell " & Target.Address & " crosses OVER"
    ElseIf Target.Value = "UNDER" Then
        MsgBox "Cell " & Target.Address & " crosses UNDER"
    End If
End Sub

Sub just_testing()
    Dim mycell As Object
    Set mycell = ActiveSheet.Cells(1, 1)
    Call Worksheet_Change(mycell)
End Sub

С этим кодом изменение значения ячейки A1 на OVER (с учетом регистра!) Выведет сообщение «Ячейка $ A $ 1 пересекает OVER».


Редактировать на основе дополнительной информации, предоставленной ОП:
Для автоматического изменения рабочего листа вам нужно использовать событие Worksheet_Calculate (пример ниже). И по какой-то странной причине Excel, похоже, требует, чтобы в любом месте на рабочем листе было =NOW(), чтобы Worksheet_Calculate действительно запускался.

Private Sub Worksheet_Calculate()
    Dim mycell As Object
    Set mycell = ActiveSheet.Cells(1, 1)
    If mycell.Value = "OVER" Then
        MsgBox "Cell " & mycell.Address & " crosses OVER"
    ElseIf mycell.Value = "UNDER" Then
        MsgBox "Cell " & mycell.Address & " crosses UNDER"
    End If
End Sub
...