Защита листа и свойство .Locked
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.9] |
|
|
Организуем VBA-FAQ! Если у Вас есть предложения, выскажитесь здесь: Пишем FAQ, интересно Ваше мнение
Общие вопросы
Особенности VBA-кода
Оптимизация VBA-кода
Полезные ссылки
Защита листа и свойство .Locked
|
Сообщ.
#1
,
|
|
|
|
на листе есть CheckBox. когда он включен необходимо заблокировать определенную ячейку (предварительно стоит Protect c UserInterfaceOnly:=True)
пишу код: ![]() ![]() With Range("ячейка") If ActiveSheet.Shapes("Flag 1").ControlFormat.Value = xlOn Then .Value = 3 .Locked = False End If End With выдает ошибку "нельзя установить свойство Locked класса Range" порылся в инете, ничего не понял, но добавил вместо ![]() ![]() .Locked = False ![]() ![]() .Select Selection.Locked = False все работает. внимание вопрос: какого черта тут оно работает если в первом случае не работало??? как по мне так один хрен Selection.Locked или Range("ячейка").Locked, а вот оказывается нифига! |
|
Сообщ.
#2
,
|
|
|
|
Selection.Locked - тут не причем
ключевым сдесь является .Select ты переводишь фокус с контрола на лист и после этого можно делать Range("ячейка").Locked и др. у CommandButton даже свойство есть такое TakeFocusOnClick (т.е. оставлять фокус на кнопке или нет) у CheckBox такого нет и поэтому фокус всегда на нем после клика, отсюда и проблема |
|
Сообщ.
#3
,
|
|
|
|
осознал... спс!
|
|
Сообщ.
#4
,
|
|
|
|
стоп.... а почему тогда
![]() ![]() With Range("ячейка") .Select .Locked = True End With не работает? только ![]() ![]() With Range("ячейка") .Select Selection.Locked = True End With |
|
Сообщ.
#5
,
|
|
|
|
У меня код
![]() ![]() Sub Макрос1() With Range("H6") .Select .Locked = True End With End Sub Прекрасно работает |
|
Сообщ.
#6
,
|
|
|
|
все... родил... даже select не нужен (vkodor отдавай назад плюсик
)... все дело в том что у меня ячейки были объедены... а когда присваиваешь имя объедененной ячейке... реально имя присваивается только левой верхней... например, объеденены "а1" и "а2"... выделяю их, присваиваю имя "ячейка" - имя присваивается только для "а1", а не для "а1:а2"!!!!... в результате я пытаюсь изменить свойство .locked не для всей объедененной ячейки, а только для одной из них!!! вот такая хрень. и на такую фигню я полдня убил! |
|
Сообщ.
#7
,
|
|
|
|
Цитата Krasnaja Shapka @ у меня ячейки были объедены за что ж ты их.. Цитата в отношении имен работает то же правило В объединенную ячейку Excel помещает только данные верхнего левого угла из выделенного диапазона Данные из других ячеек уничтожаются. |
|
Сообщ.
#8
,
|
|
|
|
тьфу.... ну я писака "объединены", во!
Добавлено п.с. какой-то значек не в тему попался... |