|
v7: поймать ячеку на которой при интеракт. нажатии в экселе говорит "снять защиту"
| ☑ |
0
Snik_666
12.09.11
✎
16:32
|
Добрый день!
подскажите как програмно разбирая Эксель поймать/проверить ячеку на которой при интерактивном нажатии в экселе говорит "Снять защиту листа можно через меню сервис..."
Строк = Application.Cells.Rows.Count + 1;
Для н = 2 по Строк Цикл
Попытка
Зн = СокрЛП(Application.Cells(н, 14).Value);
Сообщить("Ячейка по адресу "+н+":"+14+" Application.Cells(н, 1).Locked() ="+Application.Cells(н, 1).Locked()+" зн= "+Зн);
Если ПустоеЗначение(Зн) = 1 Тогда
//Прервать;
КонецЕсли;
Исключение
Сообщить("Необработана "+ н +" строка","!");
Прервать;
КонецПопытки;
КонецЦикла;
P.S.
Интерактивно в экселе пр. кн. формат ячеек недоступно
|
|
1
Snik_666
12.09.11
✎
16:37
|
Или как вариант проверить доступна ли ячейка для записи, но как ?
|
|
2
KishMish
12.09.11
✎
16:39
|
Стандртный ответ в таких случаях. Включить запись макросов. Сделать действие в екселе. Закончить запись макросов. Смотреть код.
|
|
3
KishMish
12.09.11
✎
16:40
|
Selection.Locked = False
Selection.FormulaHidden = False
|
|
4
Snik_666
12.09.11
✎
17:00
|
так везде Application.Cells(н, 14).Locked = -1
|
|
5
План счетов
12.09.11
✎
17:06
|
(1) попытаться записать в неё что нибудь.
|
|
6
План счетов
12.09.11
✎
17:06
|
Попытка Worksheet.Range(Range+Строка(Горизонт_+КК)).Value = ""; Исключение
Сообщить("Ошибка в ячейке "+Range+Строка(Горизонт_+КК)+" -> "+ОписаниеОшибки(), "!");
КонецПопытки;
|
|
7
kittystark
12.09.11
✎
17:11
|
(4) .Locked = -1 это признак того, что ячейка заблокирована
(в VBA true = -1, false = 0)
|
|
8
Snik_666
12.09.11
✎
17:16
|
(7) понятно, но оно выводит все = -1 хотя интерактивно можно внести значение
|
|
9
Snik_666
12.09.11
✎
17:17
|
(6) подобным образом работает.
т.е. функции чтобы провериь доступность ячейки для записи отсутствует ?
|
|
10
План счетов
12.09.11
✎
17:22
|
(9) проверить доступность скорее всего есть. В принципе как в (6) можно считать проверкой, если исключение то тогда Selection.Locked = False
|
|
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой