Вкратце, ситуация такая:
1. Формируем двух листовой файл Excel с помощью ПакетОтображаемыхДокументов;
2. Сохраняем в формате ТипФайлаПакетаОтображаемыхДокументов.XLS;
3. Открываем файл через Новый COMОбъект("Excel.Application"); (На компьютере стоит Excel 2016)
4. Вызываю метод FileXLS.Worksheets(2).Protect("my_very_nice_pass",false,true,true,true);
Код ошибки 0x800A03EC (или -2146827284) означает NAME_NOT_FOUND; другими словами, вы попросили что-то, и Excel не может это найти.
...
Worksheets["BLAHBLAH"] выбрасывает это, когда лист не существует и т. Д. В общем, вы просите что-то с определенным именем, а его не существует. Что касается того, почему, это потребует некоторого копания с вашей стороны.
Проверьте, что в вашем листе определенно есть диапазон, который вы просите, или что .CellName определенно возвращает имя диапазона, который вы просите.
Лично я бы для начала попробовал обратиться к нужному листу по имени, а не по номеру.
(3) Низко кланяюсь! О, Великий, Excel'евод!!! Пасиб тебе на добром слове! Помогло!
Странно что в MS документации это не написано, может где-то в общем положении... Это как-то объясняется? От куда узнали?