При копировании объемных значений в ячейку макрос не обновляется - PullRequest
0 голосов
/ 11 октября 2019

В настоящее время, используя этот шаблон ячейки макроса от Microsoft, он отлично работает, когда я по одному вводю данные в столбец B, но когда я пытаюсь скопировать и вставить данные в B1: B10 макрос не будет запущен, а столбец A не обновится,Кроме того, если бы я хотел такой же макрос для другого столбца диапазона, мне пришлось бы сделать другую функцию точно такой же и изменить Set KeyCells = Range( : ), или я могу добавить условный оператор в той же функции?

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim KeyCells As Range

' The variable KeyCells contains the cells that will
    ' cause an alert when they are changed.
    Set KeyCells = Range("B1:B1000")

If Not Application.Intersect(KeyCells, Range(Target.Address)) _
           Is Nothing Then

If Cells(Target.Row, 2).Value = "A" Then
   Cells.(Target.Row, 1).Value = "AA"
End If

If Cells(Target.Row, 2).Value = "B" Then
   Cells.(Target.Row, 1).Value = "BB"
End If



End If
End Sub

1 Ответ

1 голос
/ 11 октября 2019

Цикл пересечения целевых ячеек и желаемого диапазона.

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim KeyCells As Range

' The variable KeyCells contains the cells that will
    ' cause an alert when they are changed.
    Set KeyCells = Intersect(Range("B1:B1000"), Target)

    If Not KeyCells Is Nothing Then
        Dim rng As Range
        For Each rng In KeyCells
            If rng.Value = "A" Then
               rng.Offset(0, -1).Value = "AA"
            ElseIf rng.Value = "B" Then
               rng.Offset(0, -1).Value = "BB"
            End If
        Next rng
    End If
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...