Конференция "Corba" » Защита группы ячеек листа excel [D7, WinXP]
 
  • Вячеслав (04.02.13 16:07) [0]
    Этот код должен блокировать только заданную в range группу ячеек:

     Source_xls.Sheets[1].Activate;
     Sheet := Source_xls.Sheets[1];
     Range := Sheet.Range['A1:E2'];
     Range.FormulaHidden := False;
     Range.Cells.Locked := True;
     Source_xls.ActiveSheet.EnableSelection := xlUnlockedCells;      // выбирать только незаблокированные
     Source_xls.ActiveSheet.Protect('123');

    В результате блокируется весь лист.
  • Вячеслав (04.02.13 17:05) [1]
    Отвечаю сам себе

    Дело в том, что по умолчанию все ячейки листа заблокированы.
    Прежде чем защитить заданную группу ячеек надо разблокировать
    все другие ячейки или сначала разблокировать все.

    Source_xls.Sheets[1].Activate;
    Sheet := Source_xls.Sheets[1];
    Range := Sheet.Range['A1:E100'];
    Range.Cells.Locked := False;
    Range := Sheet.Range['A1:E2'];
    Range.FormulaHidden := False;
    Range.Cells.Locked := True;
    Source_xls.ActiveSheet.EnableSelection := xlUnlockedCells;      // выбирать только незаблокированные
    Source_xls.ActiveSheet.Protect('123');

    Все работает.
 
Конференция "Corba" » Защита группы ячеек листа excel [D7, WinXP]
Есть новые Нет новых   [118626   +13][b:0][p:0]