Excel не работает макрос при защите листа
Иногда бывает полезно защитить данные на листе от изменений другими пользователями, но при этом так же надо будет работать с данными на листе из VBA(т.е. вносить изменения с помощью кода). Обычная защита листа, конечно, подходит, хоть и есть небольшой недостаток: надо перед каждым обращением к листу снимать с него защиту, выполнять необходимые действия и защищать заново:
Sub Write_in_ProtectSheet() 'снимаем защиту с листа Worksheets("Лист1").Unprotect 'если лист защищен с паролем 1234: Worksheets("Лист1").Unprotect "1234" 'действия на листе.Например,изменение значения ячейки А1 Cells("A1").Value = "www.excel-vba.ru" 'устанавливаем защиту на лист Worksheets("Лист1").Protect 'если лист был защищен с паролем 1234: Worksheets("Лист1").Protect "1234" End Sub
Но есть метод проще.
Если выполнить ниже приведенную строчку кода, то пользователю невозможно будет изменить данные на листе(кроме тех, которые Вы сами разрешите), однако код VBA(макрос) сможет преспокойно вносить любые изменения, не снимая защиту.
Sub Protect_for_User_Non_for_VBA() ActiveSheet.Protect Password:="1111", UserInterfaceOnly:=True End Sub
Основную роль здесь играет параметр UserInterfaceOnly . Если его установить в True , то это говорит Excel-ю, что коды VBA могут выполнять действия по изменению ячеек, не снимая защиты методом Unprotect. Однако сама защита листа при этом не снимается и вручную изменить данные ячеек, не сняв защиту с листа, невозможно.
Код выше устанавливает такую защиту только на активный лист книги. Но можно указать лист явно(например установить защиту на лист с именем Лист1 в активной книге и лист, идущий вторым по порядку в книге( Sheets(2) )):
Sub Protect_for_User_Non_for_VBA() Sheets(2).Protect Password:="1111", UserInterfaceOnly:=True Sheets("Лист1").Protect Password:="1111", UserInterfaceOnly:=True End Sub
Так же приведенный код можно еще чуть модернизировать и разрешить пользователю помимо изменения ячеек еще и использовать автофильтр:
Sub Protect_for_User_Non_for_VBA() Sheets(2).Protect Password:="1111", UserInterfaceOnly:=True 'на лист "Лист1" поставим защиту и разрешим пользоваться фильтром Sheets("Лист1").Protect Password:="1111", AllowFiltering:=True, UserInterfaceOnly:=True End Sub
Можно разрешить и другие действия(выделение незащищенных ячеек, выделение защищенных ячеек, форматирование ячеек, вставку строк, вставку столбцов и т.д. Чуть подробнее про доступные параметры можно узнать в статье Защита листов и ячеек в MS Excel). А как будет выглядеть строка кода с разрешенными параметрами можно узнать, записав макрорекордером установку защиты листа с нужными параметрами:
После этого получится строка вроде такой:
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _ , AllowInsertingColumns:=True, AllowInsertingRows:=True, AllowFiltering:=True
здесь я разрешил использовать автофильтр( AllowFiltering:=True ), вставлять строки( AllowInsertingRows:=True ) и столбцы( AllowInsertingColumns:=True ).Чтобы добавить возможность изменять данные ячеек только через код VBA, останется добавить параметр UserInterfaceOnly:=True:
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _ , AllowInsertingColumns:=True, AllowInsertingRows:=True, AllowFiltering:=True, UserInterfaceOnly:=True
и так же неплохо бы добавить и пароль для снятия защиты, т.к. запись макрорекордером не записывает пароль:
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _ , AllowInsertingColumns:=True, AllowInsertingRows:=True, AllowFiltering:=True, UserInterfaceOnly:=True, Password:="1111"
Этот метод всем хорош, все отлично, но. Параметр UserInterfaceOnly сбрасывается сразу после закрытия книги. Т.е. если установить таким образом защиту на лист и закрыть книгу, то при следующем открытии защиты этой уже не будет - останется лишь стандартная защита. Поэтому, если необходимо такую защиту видеть постоянно, то данный макрос лучше всего прописывать на событие открытия книги(модуль ЭтаКнига(ThisWorkbook)).
Сделать это можно таким кодом:
Private Sub Workbook_Open() Sheets("Лист1").Protect Password:="1111", UserInterfaceOnly:=True End Sub
Этот код сработает только после того, как книга будет открыта. А это значит, чтобы увидеть результат необходимо после записи этого кода в ЭтаКнига сохранить книгу, закрыть её и открыть заново. Тогда в сам момент открытия книги код сработает и установит на "Лист1" правильную защиту.
Часто так же бывает необходимо устанавливать одинаковую защиту на все листы книги. Сделать это можно таким кодом, который так же должен быть размещен в модуле ЭтаКнига(ThisWorkbook):
Private Sub Workbook_Open() Dim wsSh As Object For Each wsSh In Me.Sheets Protect_for_User_Non_for_VBA wsSh Next wsSh End Sub Sub Protect_for_User_Non_for_VBA(wsSh As Worksheet) wsSh.Protect Password:="1111", UserInterfaceOnly:=True End Sub
Плюс во избежание ошибок лучше перед установкой защиты снимать ранее установленную(если она была):
Sub Protect_for_User_Non_for_VBA(wsSh As Worksheet) wsSh.Unrotect "1111" wsSh.Protect Password:="1111", UserInterfaceOnly:=True End Sub
Ну и если надо такую защиту установить только на конкретные листы, то убираем цикл и вызываем процедуру только для нужных листов. Если известны их имена, то можно прибегнуть к использованию массивов:
Private Sub Workbook_Open() Dim arr, sSh arr = Array("Отчет", "База", "Бланк") For Each sSh in arr Protect_for_User_Non_for_VBA Me.Sheets(sSh) Next End Sub Sub Protect_for_User_Non_for_VBA(wsSh As Worksheet) wsSh.Protect Password:="1111", AllowFiltering:=True, UserInterfaceOnly:=True End Sub
Для применения в своих задачах в данном коде необходимо лишь изменить(добавить, удалить, вписать другие имена) имена листов в этой строке: Array("Отчет", "База", "Бланк")
Примечание: Метод защиты через UsefInterface всем хорош, но есть одно ограничение: метод невозможно использовать в книге с общим доступом(Рецензирование -Доступ к книге), т.к. при общем доступе существуют ограничения, среди которых и такое, которое запрещает изменять параметры защиты для книги в общем доступе.
Статья помогла? Поделись ссылкой с друзьями!
Видеоуроки
Поиск по меткам
Всем Добрый день, очень странный момент. Excel 2003. Если устанавливаю значение EnableSelection через код:
ActiveSheet.EnableSelection = xlUnlockedCells
То при сохранении файла и повторном открытии значение данного параметра скидывается. Все ячейки доступны для выбора.
Если же это делаю через интерфейс excel(сервис ->установить защиту) то все нормально. После закрытия/открытия всё сохраняется.
Пробовал записать макроркордером установку защиты, ну в общем то он тоже самое и записывает:
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
ActiveSheet.EnableSelection = xlUnlockedCells
Так же пробую именно этим кодом установить недоступность для выделения, свойство устанавливается, но после сохранение/закрытия/повторного открытия так же сбрасывается на ноль (все ячейки доступны для выделения).
В excel 2007 таких проблем нет. Всё корректно сохраняется.
Может быть у кого то есть мысли по данной ситуации? Благодарю за помощь.
Нашел ответ, может кому пригодиться. Данный баг возникает в локализованной версии excel 2003 без сервис пака. Установка SP3 решила проблему. Нашел пользователей с подобной проблемой на другом ресурсе.
А как можно защитить только отдельные листы из всей книги?
Влад, вызывайте процедуру защиты(Protect_for_User_Non_for_VBA) несколько раз, передавая в неё нужный лист по очереди. Или цикл по листам с проверкой на имя. Все зависит от ситуации и имен листов.
Добрый день! Подскажи Пробовал защитить первый лист по вышеописанной процедуре в котором есть таблица, собираются данные с других листов книги макросом записанным в первом листе. - не работает, пропадают данные с первого листа ( сводного ), но если снять защиту с листа первого, и сделать запись в др листах книги, то таблица отображается в первозданном виде. В первом листе и на др листах шапки таблицы одинаковые, есть выпадающиеся списки, в отдельных столбцах, - в других прописаны разные формулы. Пробовал записать на первый лист код в другой книге на чистом листе все работает.
Private Sub Workbook_Open()
'включаем защиту первого листа для пользователя, но не макроса
Worksheets("Лист1").Protect Password:="123", UserInterfaceOnly:=True
End Sub
Помогите решить проблему за ранее спасибо!
Подскажите, почему данный подход не работает, когда пытаюсь записывать изменения в ячейке в комментарий. на строке AddComment выдает ошибку, лист защищен. Но я же вношу комментарий через VBA и по идее защита не должна сработать. Причем значение в ячейку вносится, а вот комментарий уже нет.
Потому что комментарии - это объекты. И они несколько отдельный элемент защиты. При установке защиты разрешите изменение объектов и все будет работать.
Дмитрий, дорый день, благодарю за полезную информацию, а подскажите, пож-та, возможно ли сделать так, чтобы защита работала следующим образом: формулы были скрыты, но при этом оставалась возможность не только добавления столбцов и работы с группированными данными, но и возможность удаления столбцов? или это невозможно решить в рамках VBA? не могу найти подходящий макрос в интернете(
Option Explicit Private Sub Workbook_Open() Dim wsSh As Worksheet Set wsSh = Me.Sheets("рынок") wsSh.EnableOutlining = True wsSh.Protect Password:="978", UserInterfaceOnly:=True, AllowFormattingCells:=True, AllowFormattingColumns:=True, AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows:=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, AllowDeletingRows:=True, AllowSorting:=True, AllowFiltering:=True, AllowUsingPivotTables:=True End Sub
вот этот не работает так как нужно(
Заранее благодарю за Ваш ответ, Маша
Мари, дело в том, что для возможности удаления строк и столбцов на защищенном листе необходимо, чтобы все ячейки в удаляемой строке или столбце имели атрибут "Не защищаемая". Я подробно рассматривал эти моменты в статье(видео прилагается): Защита листов и ячеек в MS Excel
Добрый день! А подскажите такую же команду только для Word. Здесь нет данной программы и функция не работает.
Вероника, в Word защита совершенно иначе работает и там просто нет аналогичной возможности.
Но как же тогда обеспечить работу макросов в защищенном режиме? Это вообще не возможно в word?
Вероника, во-первых непонятно, какую защиту Вы применяете в Word. От этого многое зависит. Во-вторых: можно кодом сначала снять защиту, потом поставить обратно. В Word также для документа есть методы Protect и UnProtect со своими параметрами. Их можно также просмотреть, записав макрорекордером установку защиты с нужными параметрами.
Добрый день! Дмитрий,вышеописанный Вами способ по защите от редактирования прекрасно работает. Но. Как быть если это все нужно реализовать в книге с общим доступом? Это возможно?
Обратите внимание на примечание в конце статьи. Там я четко написал, что при общем доступе данный метод использовать не получится.
Спрошу по-другому. Существует-ли способ добиться того же результата в книге с общим доступом? Или это в принципе невозможно?
Поделитесь своим мнением
Комментарии, не имеющие отношения к комментируемой статье, могут быть удалены без уведомления и объяснения причин. Если есть вопрос по личной проблеме - добро пожаловать на Форум
Здравствуйте!
Хотел применить поиск. Но вот беда при защите листа, он не работает.
Во вложенном файле, поиск в столбце H. Ставил Worksheets("Лист1").Unprotect Password:="123"
Worksheets("Лист1").Protect Password:="123". Всё равно не работает. Как сделать так, чтобы макрос работал, а всё остальное было защищено?
Работа макроса на защищенном листе
Доброго дня. Помогите пожалуйста доработать макрос, чтобы он не ругался при работе на защищенном.
Не работает макрос на защищенном листе
Помогите сделать так чтобы макрос по датам срабатывал при защищенном листе.
Добавление строк на защищенном листе программно
Привет! Ситуация такая: в Excel есть защищаемая ячейка с формулой СУММ и под ней ячейки не.
spasen1973, ну и в каком месте ваши защищённые листы, попробовал вводить данные - вводятся.
Да это не главное. Где ваш поиск, который не работает или вы считаете, что мы должны разобрать ваш код по косточкам, восхитится им и сообразить где этот поиск?
Добавлено через 10 минут
и интересно, почему ваш выпадающий фруктовый список выпадает на листе городов, а на листе с фруктами (Списки) не выпадает?
Burk, может не правильно объяснил. Не надо так строго судить. В столбце H при выборе любой ячейки выпадает форма поиска. Смыл не в этой форме, а как заставить работать этот макрос, если поставить защиту на лист1?
со списками разобрался, даже изменил код листов, мне кажется что так будет удобнее. Хотите - воспользуйтесь, нет так нет.
Я там к тому же сделал, чтобы в комбобокс сразу вставлялся заголовок столбца и сразу выводится соответственный список.
Кстати река Иртыш пишется без мягкого знака. А теперь давайте поговорим за поиск
Burk, опять Вы меня не поняли, спасибо что отрихтовали сам сам макрос поиска. Но как бы написать деликатно, мне надо чтобы это работало при защите листа1, хочу запаролить изменения, но чтобы это посик работал именно в столбце H и нигде более. Иртышь я тоже заметил, этот комбокс не я создавал и списки тоже
Решение
я там переделывал страницы у себя, посмотрите мой Лист1 соответствует вашему?
Добавлено через 11 минут
spasen1973, ещё можно выводить вашу форму только на существующих значениях столбца и на первом пустом внизу столбца, чтобы не было реакции на любую пустую ячейку столбца и ваши категории будут вводиться подряд без пустых в средине. Тогда это будет так для лист1
Добавлено через 24 минуты
в коде кнопки закрыть тоже лучше восстановить защиту листа. Т.е на всех кнопках, из которых возможен выход из формы.
Добавлено через 42 минуты
проверил в кнопае закрыть восстановление защиты можно не ставить, всё равно идет закрытие через QueryClose
Добрый день!
Была необходимость автоматического ввода даты заполнения ячейки.
Нашел макрос:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
On Error Resume Next
If InStr("C", Split(Target.Address, "$")(1)) Then Target.Offset(0, -1) = IIf(Target <> "", Now, "") 'Time 'Now
Application.EnableEvents = True
End Sub
Но он не работает на защищенном листе.
Помогите дописать код, чтобы функция работала при защите от пользователей.
Дополнение: Файл, это журнал заявок, в котором будет много листов (согласно кол-ва дней в месяце).
Не работает макрос на защищенном листе
Помогите сделать так чтобы макрос по датам срабатывал при защищенном листе.
Не все кнопки запускают макрос при защищённом листе
Всем доброе время суток ! Кнопка сложена из нескольких наложенных автофигур и сверху наложенный.
Работа макроса на защищённом листе
Здравствуйте! Хотел применить поиск. Но вот беда при защите листа, он не работает. Во вложенном.
Работа макроса на защищенном листе
Доброго дня. Помогите пожалуйста доработать макрос, чтобы он не ругался при работе на защищенном.
ALT+F11 - Tools - Options - General - переключатель напротив Break On Unhandled Errors - Ok
Теперь Вы ошибку не увидите, но и дата + время появляться не будет, т.к. уже начиная с версии XP необходимо указывать пароль.
Т.е. для одного листа, примерно так :
А если это нужно для всех рабочих листов, то имеет смысл использовать аналогичное событие книги Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range). И можно разрешить работу макросов в защищ.листе - сразу для всех листов, причём один раз, сразу после открытия книги.
SlavaRus, Во-первых, действие UserInterfaceOnly ограничивается временем работы с открытой книгой. Т.е. открыв книгу повторно, это разрешение уже работать не будет. Во-вторых, я написал, что это имеет смысл проделать один раз, после открытия книги.
Спасибо за код, но он не совсем удовлетворяет мое желание, а именно он не убирает даты если удалить данные из ячейки "С".
Я нашел как прописать:
Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Unprotect "123"
Application.EnableEvents = False
On Error Resume Next
If InStr("C", Split(Target.Address, "$")(1)) Then Target.Offset(0, -1) = IIf(Target <> "", Now, "") 'Time 'Now 'Data
Application.EnableEvents = True
ActiveSheet.Protect "123"
End Sub
В принципе меня это код устраивает, но он запароливает лист при первом же вводе информации. И чтобы работать без пароля приходится отключать макрос из настроек (не удобно).
И еще как именно прописать макрос для книги, а не для каждого листа отдельно? Это нужно, чтобы при необходимости можно было поменять пароль сразу на всю книгу, а не прописывать в каждом листе отдельно?
Добавлено через 1 минуту
ALT+F11 - Tools - Options - General - переключатель напротив Break On Unhandled Errors - Ok
Теперь Вы ошибку не увидите, но и дата + время появляться не будет, т.к. уже начиная с версии XP необходимо указывать пароль.
Т.е. для одного листа, примерно так :
А если это нужно для всех рабочих листов, то имеет смысл использовать аналогичное событие книги Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range). И можно разрешить работу макросов в защищ.листе - сразу для всех листов, причём один раз, сразу после открытия книги.
Спасибо за код, но он не совсем удовлетворяет мое желание, а именно он не убирает даты если удалить данные из ячейки "С".
Я нашел как прописать:
Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Unprotect "123"
Application.EnableEvents = False
On Error Resume Next
If InStr("C", Split(Target.Address, "$")(1)) Then Target.Offset(0, -1) = IIf(Target <> "", Now, "") 'Time 'Now 'Data
Application.EnableEvents = True
ActiveSheet.Protect "123"
End Sub
В принципе меня это код устраивает, но он запароливает лист при первом же вводе информации. И чтобы работать без пароля приходится отключать макрос из настроек (не удобно).
И еще как именно прописать макрос для книги, а не для каждого листа отдельно? Это нужно, чтобы при необходимости можно было поменять пароль сразу на всю книгу, а не прописывать в каждом листе отдельно?
Здравствуйте Написала наипростейший макрос, хотела защитить лист для изменений от пользователей, но в этом случае не работает макрос. Что я не так делаю? Подскажите пожалуйста.
Здравствуйте Написала наипростейший макрос, хотела защитить лист для изменений от пользователей, но в этом случае не работает макрос. Что я не так делаю? Подскажите пожалуйста. АННА-ЕАО
Sub Макрос9()
Application.ScreenUpdating = False
With ActiveSheet
.Unprotect
.EnableSelection = xlNoSelection
End With
Columns("H:I").Clear
Range("A1:B87").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
"W1:W2"), CopyToRange:=Range("H1:I1"), Unique:=False
Range("A1:J1").AutoFilter
ActiveSheet.Protect
Application.ScreenUpdating = True
End Sub
Sub Макрос9()
Application.ScreenUpdating = False
With ActiveSheet
.Unprotect
.EnableSelection = xlNoSelection
End With
Columns("H:I").Clear
Range("A1:B87").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
"W1:W2"), CopyToRange:=Range("H1:I1"), Unique:=False
Range("A1:J1").AutoFilter
ActiveSheet.Protect
Application.ScreenUpdating = True
End Sub
Sub Макрос9()
Application.ScreenUpdating = False
With ActiveSheet
.Unprotect
.EnableSelection = xlNoSelection
End With
Columns("H:I").Clear
Range("A1:B87").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
"W1:W2"), CopyToRange:=Range("H1:I1"), Unique:=False
Range("A1:J1").AutoFilter
ActiveSheet.Protect
Application.ScreenUpdating = True
End Sub
[/vba]
Пароль будет "123"
А дальше попробуйте:
[vba]
Sub Макрос9()
[H:I].Clear: Range("A1:B87").AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Range("W1:W2"), CopyToRange:=Range("H1:I1"), Unique:=False
ActiveSheet.AutoFilterMode = 0
End Sub
[/vba]
Пароль будет "123"
А дальше попробуйте:
[vba]
Sub Макрос9()
[H:I].Clear: Range("A1:B87").AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Range("W1:W2"), CopyToRange:=Range("H1:I1"), Unique:=False
ActiveSheet.AutoFilterMode = 0
End Sub
[/vba]
Пароль будет "123"
А дальше попробуйте:
[vba]
Sub Макрос9()
[H:I].Clear: Range("A1:B87").AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Range("W1:W2"), CopyToRange:=Range("H1:I1"), Unique:=False
ActiveSheet.AutoFilterMode = 0
End Sub
Нет, путаю
Для меня все фильтры - это автофильтры
Я имел ввиду без критериев на листе
Нет, путаю
Для меня все фильтры - это автофильтры
Я имел ввиду без критериев на листе Serge_007
Нет, путаю
Для меня все фильтры - это автофильтры
Я имел ввиду без критериев на листе Автор - Serge_007
Дата добавления - 03.12.2012 в 22:36
Serge_007, KuklP спасибо, за помощь, всё работает, а главное буду знать на будущее как с защитой работать.
Serge_007, KuklP спасибо, за помощь, всё работает, а главное буду знать на будущее как с защитой работать. АННА-ЕАО
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If (Target.Column = 4) And (Target.Row >= 3) And (Target.Row Cells(1, 1).Value = Target.Row '"Вы работаете в строке " &
UserForm1.Show
End If
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If (Target.Column = 4) And (Target.Row >= 3) And (Target.Row Cells(1, 1).Value = Target.Row '"Вы работаете в строке " &
UserForm1.Show
End If
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If (Target.Column = 4) And (Target.Row >= 3) And (Target.Row Cells(1, 1).Value = Target.Row '"Вы работаете в строке " &
UserForm1.Show
End If
Всем привет.
Очередная проблема: не работает кнопка на защищенном листе. вшил код который позволяет работать макросу на защищенном листе при активации этого листа
[vba]
Const PWD = "1"
Private Sub Worksheet_activate()
Me.Protect Password:=PWD, UserInterfaceOnly:=1, DrawingObjects:=1, Contents:=1, Scenarios:=1, _
AllowFormattingCells:=1, AllowInsertingRows:=0, AllowDeletingRows:=0, AllowFiltering:=1, AllowFormattingRows:=1
End Sub
[/vba]
, но например если выйти с сохранением на листе "gyj" а затем снова открыть книгу кнопка все равно не работает. срабатывает только когда активируем другой лист а затем возвращаемся обратно на лист "gyj"
пароль листа "1"
Прошу направьте на путь истинный.
Всем привет.
Очередная проблема: не работает кнопка на защищенном листе. вшил код который позволяет работать макросу на защищенном листе при активации этого листа
[vba]
Const PWD = "1"
Private Sub Worksheet_activate()
Me.Protect Password:=PWD, UserInterfaceOnly:=1, DrawingObjects:=1, Contents:=1, Scenarios:=1, _
AllowFormattingCells:=1, AllowInsertingRows:=0, AllowDeletingRows:=0, AllowFiltering:=1, AllowFormattingRows:=1
End Sub
[/vba]
, но например если выйти с сохранением на листе "gyj" а затем снова открыть книгу кнопка все равно не работает. срабатывает только когда активируем другой лист а затем возвращаемся обратно на лист "gyj"
пароль листа "1"
Прошу направьте на путь истинный. Sancho
Const PWD = "1"
Private Sub Worksheet_activate()
Me.Protect Password:=PWD, UserInterfaceOnly:=1, DrawingObjects:=1, Contents:=1, Scenarios:=1, _
AllowFormattingCells:=1, AllowInsertingRows:=0, AllowDeletingRows:=0, AllowFiltering:=1, AllowFormattingRows:=1
End Sub
[/vba]
, но например если выйти с сохранением на листе "gyj" а затем снова открыть книгу кнопка все равно не работает. срабатывает только когда активируем другой лист а затем возвращаемся обратно на лист "gyj"
пароль листа "1"
Прошу направьте на путь истинный. Автор - Sancho
Дата добавления - 30.05.2016 в 10:32
Читайте также: