В этой статье мы будем использовать событие изменения рабочего листа для защиты ячеек, содержащих формулы.

Необработанные данные состоят из данных о продажах сотрудников с разбивкой по месяцам и годам.

ArrowRawData

Мы хотим узнать общий объем продаж по месяцам, а также по годам.

ArrowRawData2

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

Объяснение кода

rng.HasFormula Метод HasFormula вернет True, если ячейка содержит формулу.

В противном случае он вернет False.

ActiveSheet.Protect Приведенный выше код используется для защиты ячейки.

Примечание: ячейка будет защищена, только если она заблокирована. Поэтому, прежде чем защищать ячейку, ее необходимо заблокировать. ActiveSheet.Unprotect Приведенный выше код используется для снятия защиты ячейки.

Пожалуйста, введите код ниже

'Add below code in worksheet module

Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim rng As Range

For Each rng In Target.Cells

If rng.HasFormula Then

ActiveSheet.Protect

Else

ActiveSheet.Unprotect

End If

Next rng

End Sub

Если вам понравился этот блог, поделитесь им с друзьями на Facebook и Facebook.

Мы будем рады услышать от вас, дайте нам знать, как мы можем улучшить нашу работу и сделать ее лучше для вас. Напишите нам на [email protected]