|
Защита ячеек excel | ☑ | ||
---|---|---|---|---|
0
YurAnt
18.12.15
✎
14:45
|
Доброго времени суток, господа-форумчане.
Перегреваюсь уже видимо... Имеется Бухгалтерия предприятия КОРП, редакция 2.0 (2.0.64.41) на платформе 8.3 (8.3.6.2390) Задача такова: нужно программно защитить диапазон ячеек в документе excel Проблема 1: Sheet = Book.WorkSheets(ИмяЛиста); Sheet.Cells.Locked = Истина; //Sheet.Cells(1, 1).Locked = Ложь; Sheet.Range("A5:C10").Locked = Ложь; Sheet.Protect("123",1,1,1); Не отрабатывает, лочит весь лист. Проблема 2: Возможно ли сделать аналогичную защиту если документ уже открыт пользователем? Благодарен за любые советы, С ув. YurAnt. |
|||
1
YurAnt
18.12.15
✎
15:02
|
PS excel 2010
неужели никто не озадачивался блокировкой ячеек/листов открытых экземпляров документа? |
|||
2
Garykom
гуру
18.12.15
✎
15:04
|
(1) зачем ексель нужен?
|
|||
3
mehfk
18.12.15
✎
15:05
|
(0) Сделай запись макроса для первой проблемы и посмотри исходный код.
|
|||
4
Garykom
гуру
18.12.15
✎
15:05
|
(2)+
а то тут одна умная сеть автозаправок прислала заполнить вопросник типа 200 бонусов дадим... только xlsx с каким то activex внутри, на моем 2003 офисе нифига не работает (хотя и открылось) и как это заполнять? |
|||
5
Мэс33
18.12.15
✎
15:07
|
(4) разреши запуск макросов - ищи в параметрах настройки безопасности.
|
|||
6
Garykom
гуру
18.12.15
✎
15:08
|
(5) не пойдет, там "ошибка activex" тупо нет такого контрола что засунули в док
|
|||
7
Garykom
гуру
18.12.15
✎
15:09
|
(6)+ и это не считая проблем с безопасностью, вот же олени
|
|||
8
Мэс33
18.12.15
✎
15:09
|
(0) Нет просто защиты ячейки.
Есть защита ячейки. Но некоторые ячейки можно запретить запрещать. То есть программно надо на некоторых ячейках снять запрет. Selection.Locked = False Selection.FormulaHidden = False На этих ячейках защита не установится, на остальных (всех) - установится защита. |
|||
9
Мэс33
18.12.15
✎
15:12
|
Sheet = Book.WorkSheets(ИмяЛиста);
Sheet.Range("A5:C10").Locked = Ложь; // где не надо, чтобы была защита Sheet.Protect("123",1,1,1); |
|||
10
KnightAlone
18.12.15
✎
15:13
|
Попытка
Excel = Новый COMОбъект("Excel.Application"); Исключение Сообщить("Не удалось инициализировать Excel"); КонецПопытки; Состояние("Преобразую файл ... "); Попытка ФайлExcel = Excel.Workbooks.Open(ПутьКФайлуФыгрузки); ЛистExcel = ФайлExcel.ActiveSheet; ЛистExcel.Range("V2:X4").locked = False; ЛистExcel.Range("T5:U5").locked = False; ЛистExcel.Range("W5:X5").locked = False; ЛистExcel.Cells(2, 27).locked = False; ЛистExcel.Cells(3, 27).locked = False; Иначе ФайлExcel.ActiveSheet.Protect("---"); Excel.DisplayAlerts = True; ФайлExcel.Windows(1).TabRatio = 0.500; ФайлExcel.Save(); |
|||
11
KnightAlone
18.12.15
✎
15:16
|
Иначе и Попытка - лишние, кусками кидал, но суть понятна вроде
|
|||
12
dk
18.12.15
✎
15:16
|
(0) Ты интерактивно то может сделать то что хочешь программно? Макросы?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |