![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 13.08.2011
Сообщений: 91
|
![]()
Здравствуйте, у меня не получается разрешить использование автофильтра после защиты листа с помощью скрипта VBScript.
При помощи VBA это делается без проблем: ActiveSheet.Protect "1234" DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFiltering:=True Но в файле .vbs это не прокатывает. Подскажите, пожалуйста, как прописать подобное в VBScript ? |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 24.12.2012
Сообщений: 776
|
![]()
Vja4eslav, попробуйте код ниже изменить под свою задачу. Недостающие команды можно получить сначала в программе "Excel", а затем уже команды переносить в VBS-файл.
Код вставляет число "1" в активную Excel-книгу в активный лист в ячейку "A1": Код:
Примечание: Особенности "VBS" в отличие от "VBA":
Последний раз редактировалось Скрипт; 22.02.2013 в 15:27. |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 13.08.2011
Сообщений: 91
|
![]()
Уважаемый СКРИПТ, Ваш код я прописал в 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. |
![]() |
![]() |
![]() |
#4 | |
Форумчанин
Регистрация: 24.12.2012
Сообщений: 776
|
![]()
Пункт 1
Vja4eslav, здесь: Код:
Пункт 2 Цитата:
Код:
Последний раз редактировалось Скрипт; 22.02.2013 в 15:23. |
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 13.08.2011
Сообщений: 91
|
![]()
Немножко не понял: вместо каких параметров ставить запятые?
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 24.12.2012
Сообщений: 776
|
![]()
Пункт 1
Vja4eslav, в этой команде: Код:
"1234" DrawingObjects Contents Scenarios AllowFiltering Пункт 2 В сообщении #1 у вас неправильно записана команда, правильно так: Код:
Последний раз редактировалось Скрипт; 22.02.2013 в 15:01. |
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 13.08.2011
Сообщений: 91
|
![]()
То есть надо написать:
ExcelApp.ActiveSheet.Protect 1, 1, 1, 1 ? |
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 24.12.2012
Сообщений: 776
|
![]()
Vja4eslav, да. Если второй, третий и четвёртый параметр вообще не нужен, но нужно указать, например, пятый по счёту параметр, то нужно просто запятые ставить, например:
Код:
Последний раз редактировалось Скрипт; 22.02.2013 в 15:10. |
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 13.08.2011
Сообщений: 91
|
![]()
В этом случае ставится пароль на защиту в виде "1", а применение автофильтра по прежнему не разрешено.
Может я туплю где-нибудь? |
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,170
|
![]() Код:
![]()
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 |