|
|
|
Защита ячеек в Excel | ☑ | ||
|---|---|---|---|---|
|
0
MarKo
10.08.06
✎
12:21
|
Люди помогите !
В 1С формируется файл xls. Нужно установить защиту на изменения на весь лист за исключением отдельных ячеек. Защиту с паролем. Ексель = Новый COMОбъект("Excel.Application"); Прайс = Ексель.WorkBooks.Add(); Лист = Прайс.WorkSheets(1); сч = 4; Лист.UnProtect(""); Пока ВыборкаНом.Следующий() Цикл Лист.Cells(сч,1).Value = ВыборкаНом.Наименование; ...... Лист.Cells(сч,7).Locked = Истина; // снимаю защиту с отдельной ячейки сч = сч +1; КонецЦикла; Лист.Cells.Locked = ложь; // устанавливаю защиту на весь лист Лист.Protect("пароль"); проблема в том, что защита (пароль устанавливается) устанавливается на выделение ячеек, а на изменение объектов не устанавливается. В чем тут проблема ? Помогите, кто знает.... |
|||
|
1
а лю 427
10.08.06
✎
12:35
|
а причем здесь 8-ка?
|
|||
|
2
MarKo
10.08.06
✎
12:50
|
я екселевский файл из 8-ки формирую (прайс)
|
|||
|
3
MarKo
10.08.06
✎
12:52
|
ошибочка вышла, защита вообще не устанавливается, никакая
|
|||
|
4
MarKo
10.08.06
✎
12:53
|
неужели никто не знает ..... или лень писать ?
|
|||
|
5
а лю 427
10.08.06
✎
12:54
|
лень писать...
|
|||
|
6
MarKo
10.08.06
✎
12:55
|
ну пожалуста .... сама никак не разбирусь, второй день уже колупаюсь.
|
|||
|
7
Темный Эльф
10.08.06
✎
12:59
|
Locked Property
True if the object is locked, False if the object can be modified when the sheet is protected. |
|||
|
8
а лю 427
10.08.06
✎
13:01
|
(7) в тему.... прямо в точку...
|
|||
|
9
MarKo
10.08.06
✎
13:07
|
поставила Лист.Cells.Locked = истина;
установилась защита на весь лист, а мне надо на отдельную ячейку снять защиту... Насколько я знаю, если это делать из Excel, надо снять защиту с ячейки, а потом установить защиту листа. И будет защищен весь лист, кроме данной ячейки. а как это осущ. через 1С ? |
|||
|
10
Темный Эльф
10.08.06
✎
13:08
|
(9)Лист.Cells(сч,7).Locked = Ложь;
|
|||
|
11
MarKo
10.08.06
✎
13:09
|
не проходит, все равно весь лист защищен
|
|||
|
12
Темный Эльф
10.08.06
✎
13:12
|
У тебя что сначала? Лист.Cells.Locked = истина; или Лист.Cells(сч,7).Locked = Ложь; ? И разберись, что такое защита листа, а что такое защита ячейки. Есть свойство Locked, есть метод Protect. То есть пишешь Лист.Cells(сч,7).Locked = Ложь; для всех ячеек, которые должны быть доступны. Затем пишешь Protect для закрытия всех остальных ячеек. Если же ты после Лист.Cells(сч,7).Locked = Ложь; пишешь Лист.Cells.Locked = истина;, то у тебя и будет все заблокировано.
|
|||
|
13
Надо наоборот
10.08.06
✎
13:17
|
Сначала надо защитить лист, а потом с нужных ячеек снять защиту. Проверено, формируется прайс, где можно менять значения только в заданных ячейках.
|
|||
|
14
MarKo
10.08.06
✎
13:18
|
То что написал Темный Эльф сработало, спасибо.
Попробую еще второй вариант..... |
|||
|
15
MarKo
10.08.06
✎
13:20
|
Второй вариант, тоже работает....
Спасибо, ребята, за помощь. |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |