Конференция "Corba" » Защита листа Excel в Дельфи
 
  • Гость (15.11.07 18:55) [0]
    Подскажите, пожалуйста, как установить защиту на лист Excel в дельфи и как снять свойство некоторых ячеек "защищаемая".
    Заранее спасибо.
  • Kolan © (16.11.07 08:36) [1]
    Записать макрос и посмотреть?
  • umbra © (16.11.07 12:08) [2]

    > как установить защиту на лист Excel в дельфи

    sheet.Protect(Password:='123');




    > как снять свойство некоторых ячеек "защищаемая"

    range.Locked := false;

  • Гость (16.11.07 12:44) [3]
    Excel := CreateOleObject('Excel.Application');
    Excel.Workbooks.Open[extractfilepath(Application.ExeName)+'Excel.xls'];
    Excel.Workbooks.ActiveSheet.Range['A1'].Locked:=false;

    При выполнении последней строки выдается сообщение об ошибке:
    Methid ActiveSheet not supported by automation object

    Не подскажете, в чем проблема?
  • Сергей М. © (16.11.07 12:47) [4]

    > в чем проблема?


    В том что у объекта-коллекции Workbooks нет объектного свойства ActiveSheet.
  • Гость (16.11.07 12:49) [5]
    Но ведь

    ShowMessage(Excel.Workbooks.ActiveSheet.Range['A1']);

    работает
  • Сергей М. © (16.11.07 13:02) [6]
    Нет, не работает. Не выдумывай.

    ActiveSheet - это свойство объекта ExcelApplication, а не Workbooks.
  • Гость (16.11.07 13:09) [7]
    спасибо, Сергей М. Действительно с глазками проблемы:)
    не подскажите, пожалуйста, как грамотно завершить работу с файлом Excel
    Excel.Quit; не убивает процесс Excel.exe.
  • Сергей М. © (16.11.07 13:15) [8]
    Excel.Quit;
    Excel := Unassigned;
  • Гость (16.11.07 13:18) [9]
    Спасибо большое. Буду наглым и спрошу еще раз:
    а как отменить вопрос Excel о сохранении файла, чтобы сделанные изменения не было необходимости подтверждать?
  • Сергей М. © (16.11.07 13:41) [10]
    см. DisplayAlerts
  • Гость (16.11.07 15:42) [11]
    Excel.DisplayAlerts:=0;
    Спасибо!
  • Гость (25.11.07 15:05) [12]
    ASheet.Range['B2', EmptyParam].HorizontalAlignment := xlLeft;
    ASheet.Range['B2', EmptyParam].VerticalAlignment := xlCenter;

    не подскажите, в чем ошибка?
  • Сергей М. © (25.11.07 15:18) [13]

    > в чем ошибка?


    А разве ты у себя на экране не видишь текст с сообщением об ошибке ?
  • umbra © (26.11.07 10:52) [14]

    > ASheet.Range['B2', EmptyParam]


    Диапазон указывается или строковой переменной или двумя переменными типа диапазон. А у вас бред какой-то написан.
  • имя (04.04.09 09:10) [15]
    Удалено модератором
  • имя (04.04.09 09:11) [16]
    Удалено модератором
 
Конференция "Corba" » Защита листа Excel в Дельфи
Есть новые Нет новых   [134427   +35][b:0][p:0.001]