Я пишу C # VSTO для Excel.Одной из функций является защита листа, но оставить некоторые ячейки разблокированными для редактирования.Для защиты листа я использую следующий код:
_Worksheet ws = WP.Application.ActiveSheet;
ws.Protect(null, true, true, true, AllowFormattingCells: true);
До того, как лист был защищен, пользователь смог установить некоторые ячейки разблокированными с помощью пользовательского интерфейса Excel, как показано на рисунке.![Unlocked cells](https://i.stack.imgur.com/JfvMX.png)
Я ищу способ установить основной цвет разблокированных ячеек после защиты листа.Код, который у меня есть, итерирует UsedRange и проверяет каждую ячейку:
foreach (Range cell in ws.UsedRange)
{
if (!cell.Locked)
{
cell.Interior.Color = ColorTranslator.ToOle(Color.Bisque);
}
}
Я знаю, что это неэффективно.Есть ли еще способ запросить Excel о состоянии блокировки диапазона?