Защита клеток только для формул с использованием VBA в Microsoft Excel
В этой статье мы будем использовать событие изменения рабочего листа для защиты ячеек, содержащих формулы.
Необработанные данные состоят из данных о продажах сотрудников с разбивкой по месяцам и годам.
Мы хотим узнать общий объем продаж по месяцам, а также по годам.
Мы использовали функцию суммы для расчета общих продаж за месяц и год. Событие изменения рабочего листа используется для защиты ячеек, содержащих формулы. Когда мы пытаемся отредактировать ячейку, содержащую формулу, мы получаем всплывающее сообщение о том, что значение ячейки изменить нельзя.
Объяснение кода
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]