Изменить VBA для автоматического запуска или при перемещении вкладок - PullRequest
0 голосов
/ 14 декабря 2018

У меня ниже VBA, который работает только при обновлении ячейки.есть формула, которая обновляет ячейку, но VBA не воспринимает это как изменение.Как заставить VBA работать автоматически, поэтому мне не нужно вкладывать внутри каждой ячейки, чтобы запустить VBA.желательно полностью автоматический, но если это легко, может быть изменение табуляции и т. д.

любая помощь будет оценена.

Private Sub Worksheet_Change(ByVal Target As Range)    
     If Target.Column = 9 Or Target.Column = 13 Then 'Column I or column M
         If UCase(Target) = "YES" Then Target.Offset(0, -1).ClearContents
    End If
End Sub

1 Ответ

0 голосов
/ 14 декабря 2018

@ DMO

Вот только что протестировал и работает отлично.И это довольно быстро

Public Sub UpdatedEIghtAndTwelve()
    Dim arr As Variant
    arr = ThisWorkbook.ActiveSheet.UsedRange.Formula
    Dim i As Long, j As Long, z As Long

    j = UBound(arr, 1)
    z = UBound(arr, 2)

    For i = LBound(arr, 1) To UBound(arr, 1)
        If arr(i, 9) = "YES" Then
            arr(i, 8) = vbNullString
        End If
        If arr(i, 13) = "YES" Then
            arr(i, 12) = vbNullString
        End If
    Next i

    With ThisWorkbook.ActiveSheet
        .Range(.Cells(1, 1), .Cells(j, z)).Value2 = arr
    End With

End Sub

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

 Private Sub Worksheet_Activate()
     Call UpdatedEIghtAndTwelve
 End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...