|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
22.02.2013, 14:01 | #1 |
Пользователь
Регистрация: 13.08.2011
Сообщений: 90
|
Как при защите листа разрешить пользование автофильтром с помошью VBS
Здравствуйте, у меня не получается разрешить использование автофильтра после защиты листа с помощью скрипта VBScript.
При помощи VBA это делается без проблем: ActiveSheet.Protect "1234" DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFiltering:=True Но в файле .vbs это не прокатывает. Подскажите, пожалуйста, как прописать подобное в VBScript ? |
22.02.2013, 14:24 | #2 |
Форумчанин
Регистрация: 24.12.2012
Сообщений: 776
|
Vja4eslav, попробуйте код ниже изменить под свою задачу. Недостающие команды можно получить сначала в программе "Excel", а затем уже команды переносить в VBS-файл.
Код вставляет число "1" в активную Excel-книгу в активный лист в ячейку "A1": Код:
Примечание: Особенности "VBS" в отличие от "VBA":
Последний раз редактировалось Скрипт; 22.02.2013 в 15:27. |
22.02.2013, 14:44 | #3 |
Пользователь
Регистрация: 13.08.2011
Сообщений: 90
|
Уважаемый СКРИПТ, Ваш код я прописал в VBS следующим образом:
Set ExcelApp = CreateObject("Excel.Application") ExcelApp.Visible = True ExcelApp.WorkBooks.Open "C:\Documents and Settings\Администратор\Рабочий стол\Новая папка\Лист Microsoft Excel.xls" ExcelApp.Windows("Лист Microsoft Excel.xls").Activate ExcelApp.ActiveSheet.Unprotect "1234" ExcelApp.ActiveSheet.Range("A1").Va lue = 1 ExcelApp.ActiveSheet.Protect "1234" ExcelApp.DisplayAlerts = False ExcelApp.ActiveWorkbook.Close True ExcelApp.Quit With ExcelApp......End With забыл применить, ну да ладно. Всё нормально отработало. А вот как правильно написать в VBScript разрешение использования автофильтра после защиты листа? Последний раз редактировалось Vja4eslav; 22.02.2013 в 14:47. |
22.02.2013, 14:48 | #4 | |
Форумчанин
Регистрация: 24.12.2012
Сообщений: 776
|
Пункт 1
Vja4eslav, здесь: Код:
Пункт 2 Цитата:
Код:
Последний раз редактировалось Скрипт; 22.02.2013 в 15:23. |
|
22.02.2013, 14:54 | #5 |
Пользователь
Регистрация: 13.08.2011
Сообщений: 90
|
Немножко не понял: вместо каких параметров ставить запятые?
|
22.02.2013, 14:57 | #6 |
Форумчанин
Регистрация: 24.12.2012
Сообщений: 776
|
Пункт 1
Vja4eslav, в этой команде: Код:
"1234" DrawingObjects Contents Scenarios AllowFiltering Пункт 2 В сообщении #1 у вас неправильно записана команда, правильно так: Код:
Последний раз редактировалось Скрипт; 22.02.2013 в 15:01. |
22.02.2013, 15:05 | #7 |
Пользователь
Регистрация: 13.08.2011
Сообщений: 90
|
То есть надо написать:
ExcelApp.ActiveSheet.Protect 1, 1, 1, 1 ? |
22.02.2013, 15:06 | #8 |
Форумчанин
Регистрация: 24.12.2012
Сообщений: 776
|
Vja4eslav, да. Если второй, третий и четвёртый параметр вообще не нужен, но нужно указать, например, пятый по счёту параметр, то нужно просто запятые ставить, например:
Код:
Последний раз редактировалось Скрипт; 22.02.2013 в 15:10. |
22.02.2013, 15:08 | #9 |
Пользователь
Регистрация: 13.08.2011
Сообщений: 90
|
В этом случае ставится пароль на защиту в виде "1", а применение автофильтра по прежнему не разрешено.
Может я туплю где-нибудь? |
22.02.2013, 15:11 | #10 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
Код:
webmoney: E265281470651 Z422237915069 R418926282008
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как разрешить играть в игры | soktahan | Компьютерное железо | 13 | 10.05.2012 08:21 |
группировка при защите листа | nastya007 | Microsoft Office Excel | 46 | 21.03.2011 11:35 |
отображение данных первого листа, при активации ячейки второго листа | Akmal-Sharipov | Microsoft Office Excel | 4 | 03.12.2010 14:48 |
Группировка строк при защите листа | tae1980 | Microsoft Office Excel | 1 | 27.05.2010 14:23 |
как заставить работать макрос при защите листа | qwertyuzer | Microsoft Office Excel | 4 | 11.02.2009 15:20 |