Excel VBA - Worksheet_Calculate () - ошибка, когда данные обновляются вручную в исходном листе - PullRequest
0 голосов
/ 23 июня 2018

В Excel VBA - worksheet_calculate написана процедура для изменения цвета фигур на основе значений в соответствующих ячейках, существует тот же лист, который просматривается из другого листа в той же книге.

Список (форма контроля) используется для данных нескольких столбцов.

Код отлично работает для существующих данных.

Всякий раз, когда исходные значения вводятся вручную, VBA выдает ошибку

screenshot

код

Option Explicit

Private Sub Worksheet_Calculate()
    Dim Target As Range
    Set Target = Range("T6:T35")
    Dim v1 As Integer
    Dim v2 As Integer
    Dim s As Integer
    Dim t As Integer
    Dim i As Integer
    Dim Shapename As String
    If Intersect(Target, Range("T6:T35")) Is Nothing Then Exit Sub
        v1 = Left(Range("N6"), 2)
        v2 = Right(Range("N6"), 2)
        s = 19
        t = 20
        For i = 6 To 35
            Shapename = Cells(i, s)
            If Cells(i, t) < Range("N5") Then
                ActiveSheet.Shapes(Shapename).Fill.ForeColor.RGB = vbRed
            ElseIf Cells(i, t) >= v1 And Cells(i, t) < v2 Then
                ActiveSheet.Shapes(Shapename).Fill.ForeColor.RGB = vbYellow
            ElseIf Cells(i, t) >= Range("N7") Then
                ActiveSheet.Shapes(Shapename).Fill.ForeColor.RGB = vbGreen
            End If
        Next i
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...