2016-10-20 6 views
-1

Я хотел бы заблокировать ячейку в зависимости от значения в другой ячейке.Блокировать ячейки в зависимости от значения в другой ячейке

Пример:

Замок A2 если B2 имеет какое-либо значение с минимумом 10 букв в нем и разблокировать A2 если B2 имеет значение с более чем 10 букв.

Я хотел бы иметь это в столбцах A и B, поэтому VBA-макрос будет смотреть на значение в столбце B и блокировать/разблокировать значение в столбце A соответственно.

ответ

0

Установите все свои листы, чтобы сначала открыть состояние.

Затем использовать для блокировки конкретной ячейки в соответствии со значением в другой ячейке

If Worksheets("Sheet1").Range("B1").Value = <something> then: _ 
Worksheets("Sheet1").Range("A1").Locked = True 

Put, что в петлю и у вас есть то, что вы хотите.

В конце концов, чтобы сделать замок эффективным и по-прежнему позволяет код VBA для изменения клеток является:

Worksheets("Sheet1").Protect UserInterfaceOnly:=True 

Он будет блокировать только ячейки, отмеченные выше, с замком и оставить все остальные разблокированы.

+0

Мои знания в VBA по-прежнему ограничены. Я не знаю, как это сделать в цикле, не могли бы вы мне помочь? – Ezzat

+0

Сначала начните с изучения vba. Loop - это действительно базовая функция на каждом языке, и вы не можете зайти слишком далеко, если не знаете, как петля. За это время смотрите только здесь: http://stackoverflow.com/questions/3875415/loop-through-each-cell-in-a-range-of-cells-when-given-a-range-object И помните, что google всегда ваш друг для такого рода вопросов, используйте его больше! – Blenikos

+0

Как я понимаю, вы действительно новичок в Stack Overflow, так что добро пожаловать в сообщество. Пройдите тур здесь: http://stackoverflow.com/tour Это действительно поможет вам в решении вопросов и навигации по ним. – Blenikos

Смежные вопросы