VBA, чтобы проверить, была ли перезаписана ячейка с формулой, и заполнить ячейку исходной формулой. - PullRequest
0 голосов
/ 12 марта 2019

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

1 Ответ

0 голосов
/ 12 марта 2019

Используйте событие worksheet_change, запущенное в столбце A. Если цель не указана, введите формулу.

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)

    If Not Intersect(Target, Range("A:A")) Is Nothing Then
        On Error GoTo bye
        Application.EnableEvents = False
        Dim t As Range
        For Each t In Intersect(Target, Range("A:A"))
            'Debug.Print t.Value
            If t.Value = vbNullString Then
                t.FormulaR1C1 = "=sum(RC2:RC8)"  '=SUM(B2:H2) in row 2
            End If
        Next t
    End If
bye:
    Application.EnableEvents = True
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...