|
1С и Excel - защита листа |
☑ |
0
Nicole
17.06.22
✎
13:16
|
Есть вот такой код:
Книга = Excel.WorkBooks.Open(ИмяФайла);
Лист = Книга.WorkSheets("Имя листа");
.....
Лист.Range(Лист.Cells(1, 1), Лист.Cells(ВсегоСтрок, ВсегоКолонок)).FormulaR1C1 = МассивЯчеек; // инициализация формул
Лист.Protect("12345", 1, 1, 1);
Валится с сообщением об исключительной ошибке на Лист.Protect. Находила похожие темы, но так и не поняла, в чем может быть причина.
Заранее спасибо за помощь.
|
|
1
vicof
17.06.22
✎
13:18
|
|
|
2
Nicole
17.06.22
✎
14:01
|
(1) Речь о том, что пароль нужно указывать без кавычек?
|
|
3
vicof
17.06.22
✎
14:04
|
(2) И про ActiveSheet
|
|
4
Nicole
17.06.22
✎
14:40
|
(3) Переделала
Лист.Range(Лист.Cells(1, 1), Лист.Cells(ВсегоСтрок, ВсегоКолонок)).FormulaR1C1 = МассивЯчеек; // инициализация формул
Книга.ActiveSheet.Protect(12345, 1, 1, 1);
Все равно валится с той же ошибкой
|
|
5
Nicole
20.06.22
✎
08:36
|
Подниму, пожалуй.
Решение так и не найдено.
|
|
6
vbus
20.06.22
✎
09:15
|
Private Sub CommandButton_Click()
Worksheets("Лист1").Unprotect Password:="1111"
End Sub
Private Sub CommandButton__Click()
Worksheets("Лист1").Unprotect "1111"
End Sub
Private Sub CommandButton___Click()
Password = "1111"
Worksheets("Лист1").Unprotect Password
End Sub
|
|
7
Nicole
20.06.22
✎
10:19
|
(6) Простите, не поняла, на что вы предлагаете обратить внимание
|
|
8
Nicole
21.06.22
✎
16:06
|
Проблема, похоже, заключается в том, что файл, в котором нужно защитить листы, выгружается из 1С через ПакетОтображаемыхДокументов. Причем если таким образом формировать книгу с одним листом - все нормально, Protect срабатывает; если формируем книгу с несколькими листами - получаем исключительную ситуацию.
|
|
9
Nicole
21.06.22
✎
16:35
|
|
|
10
Nicole
21.06.22
✎
16:49
|
Нет предела совершенству. Есть вариант проще.
Для Счетчик = 1 По Книга.WorkSheets.Count Цикл
Книга.WorkSheets(Счетчик).Select();
КонецЦикла;
|
|