На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Организуем VBA-FAQ! Если у Вас есть предложения, выскажитесь здесь: Пишем FAQ, интересно Ваше мнение
Популярные разделы FAQ:    user posted image Общие вопросы    user posted image Особенности VBA-кода    user posted image Оптимизация VBA-кода    user posted image Полезные ссылки

1. Старайтесь при создании темы указывать в заголовке или теле сообщения название офисного приложения и (желательно при работе с Office 95/97/2000) его версию. Это значительно сократит количество промежуточных вопросов.
2. Формулируйте вопросы как можно конкретнее, вспоминая (хотя бы иногда) о правилах ВЕЛИКОГО И МОГУЧЕГО РУССКОГО ЯЗЫКА, и не забывая, что краткость - сестра таланта.
3. Не забывайте использовать теги [сode=vba] ...текст программы... [/code] для выделения текста программы подсветкой!
4. Темы с просьбой выполнить какую-либо работу полностью за автора здесь не обсуждаются и переносятся в раздел ПОМОЩЬ СТУДЕНТАМ.
Модераторы: Old Bat, MIF
  
> Защита листа и свойство .Locked
    на листе есть CheckBox. когда он включен необходимо заблокировать определенную ячейку (предварительно стоит Protect c UserInterfaceOnly:=True)
    пишу код:

    ExpandedWrap disabled
          With Range("ячейка")
              If ActiveSheet.Shapes("Flag 1").ControlFormat.Value = xlOn Then
                          .Value = 3
                          .Locked = False
              End If
          End With

    выдает ошибку "нельзя установить свойство Locked класса Range"

    порылся в инете, ничего не понял, но добавил вместо
    ExpandedWrap disabled
      .Locked = False

    ExpandedWrap disabled
      .Select
      Selection.Locked = False


    все работает.

    внимание вопрос: какого черта тут оно работает если в первом случае не работало??? как по мне так один хрен Selection.Locked или Range("ячейка").Locked, а вот оказывается нифига!
      Selection.Locked - тут не причем
      ключевым сдесь является
      .Select
      ты переводишь фокус с контрола на лист и после этого можно делать
      Range("ячейка").Locked и др.
      у CommandButton даже свойство есть такое TakeFocusOnClick (т.е. оставлять фокус на кнопке или нет)
      у CheckBox такого нет и поэтому фокус всегда на нем после клика, отсюда и проблема
        осознал... спс!
          стоп.... а почему тогда
          ExpandedWrap disabled
                With Range("ячейка")
                                .Select
                                .Locked = True
                End With

          не работает?

          только
          ExpandedWrap disabled
                With Range("ячейка")
                                .Select
                                Selection.Locked = True
                End With
          Сообщение отредактировано: Krasnaja Shapka -
            У меня код

            ExpandedWrap disabled
              Sub Макрос1()
                  With Range("H6")
                      .Select
                      .Locked = True
                  End With
              End Sub

            Прекрасно работает
            Сообщение отредактировано: Pavel55 -
              все... родил... даже select не нужен (vkodor отдавай назад плюсик ;) )... все дело в том что у меня ячейки были объедены... а когда присваиваешь имя объедененной ячейке... реально имя присваивается только левой верхней...

              например, объеденены "а1" и "а2"... выделяю их, присваиваю имя "ячейка" - имя присваивается только для "а1", а не для "а1:а2"!!!!... в результате я пытаюсь изменить свойство .locked не для всей объедененной ячейки, а только для одной из них!!!

              вот такая хрень.
              и на такую фигню я полдня убил!
              Сообщение отредактировано: Krasnaja Shapka -
                Цитата Krasnaja Shapka @
                у меня ячейки были объедены

                за что ж ты их.. :lol:
                Цитата
                В объединенную ячейку Excel помещает только данные верхнего левого угла из выделенного диапазона Данные из других ячеек уничтожаются.
                в отношении имен работает то же правило
                  тьфу.... ну я писака "объединены", во! :wub:

                  Добавлено
                  п.с. какой-то значек не в тему попался...
                  0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                  0 пользователей:


                  Рейтинг@Mail.ru
                  [ Script execution time: 0,0796 ]   [ 16 queries used ]   [ Generated: 11.09.25, 14:34 GMT ]