Событие рабочего листа не стреляет - PullRequest
0 голосов
/ 08 мая 2019

Мой основной код события рабочего листа не работает.

У меня есть следующий код, включенный в мою книгу Sheet4 (где я хочу, чтобы она запускалась):

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column = 14 Then
    ThisRow = Target.Row
    If Target.Value = "In Progress" Then
        Range("S" & ThisRow).Value = Format(Now(), "mm/dd/yyyy")
    End If
End If 
End Sub

Private Sub Worksheet_Change2(ByVal Target As Range)
    Target.Font.ColorIndex = 5
End Sub

-Это в моем проекте «Лист 4» (то есть, когда я щелкаю правой кнопкой мыши на вкладке и нажимаю «Просмотреть код», он перетаскивает прямо в VBA, и я вижу мой код там)

-Я проверил свой центр доверия и все макросы включены. Лист сохраняется на моем рабочем столе, поэтому он должен быть надежным.

Понятия не имею, почему ни один из приведенных выше блоков кода не работает. Когда у меня щелкает исполняемый макрос, это работает (то есть, когда я говорю этому макросу о запуске).

Наконец, это Excel сохраняется как книга с поддержкой макросов.

Ответы [ 2 ]

0 голосов
/ 09 мая 2019

Большое спасибо за быстрые ответы! Мне удалось заставить его работать, но я не уверен на 100%, как я это сделал, если честно:)

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

У меня там был основной момент, потому что это был тест. Этот код был извлечен непосредственно с сайта MS, поэтому я использовал его в качестве контрольной группы. Мы можем пойти дальше и закрыть его. Спасибо всем за помощь !!!

0 голосов
/ 08 мая 2019

Попробуй это:

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Excel.Range)

    Dim ThisRow As Long

    If Target.Column = 14 And Target.Value = "In Progress" Then
        ThisRow = Target.Row
        Range("S" & ThisRow).Value = Format(Now(), "mm/dd/yyyy")
        Target.Font.ColorIndex = 5
    End If

End Sub

У меня сработало нормально.Привыкайте к разработке с использованием Option Explicit, потому что это заставит вас объявлять все ваши переменные, что позволит избежать ошибок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...