Здравствуйте!
Перестала работать внешняя обработка после обновления версии Эксель.
такая ошибка при запуске

{ВнешняяОбработка.NEON.Форма.Форма.Форма(207)}: Ошибка при вызове метода контекста (Sheets)
 Лист = ExcelWB.Sheets(2).select();
по причине:
Произошла исключительная ситуация (0x8002000b)

```1c
    //Создаем шапку лист1
    Лист = ExcelWB.Sheets(1);
    Лист.Name = "главная";
    Лист.Columns("A").NumberFormat = "0"; //Формат колонки - Число целое
    Лист.Columns("B").NumberFormat = "@"; //Текстовый формат колонки
    Лист.Columns("C").NumberFormat = "ДД.ММ.ГГГГ"; //Формат колонки - Дата
    Лист.Columns("D").NumberFormat = "ДД.ММ.ГГГГ"; //Формат колонки - Дата
    Лист.Columns("E").NumberFormat = "0"; //Формат колонки - Число целое
    Лист.Columns("F").NumberFormat = "@"; //Текстовый формат колонки
    Лист.Columns("G").NumberFormat = "@"; //Текстовый формат колонки
    //Создаем шапку лист 2
    Лист = ExcelWB.Sheets(2).select(); --------------------------------------------------------------Вот сюда тычет,
    Лист.Name ="товар - движение по складу";
    Лист.Columns("A").NumberFormat = "0";
    Лист.Columns("B").NumberFormat = "@";
    Лист.Columns("C").NumberFormat = "ДД.ММ.ГГГГ";
    Лист.Columns("D").NumberFormat = "ДД.ММ.ГГГГ";
    Лист.Columns("E").NumberFormat = "0";
    Лист.Columns("F").NumberFormat = "@";
    Лист.Columns("G").NumberFormat = "@";
    Лист.Columns("H").NumberFormat = "@";
    Лист.Columns("I").NumberFormat = "@";
```
---
ExcelWB.Sheets(2).
Это ведь не создание нового листа, а выбор, может второго листа просто нет?
Открыл Excel 2007 - там в новой книге сразу три листа, в 2016 - только один.
Можно проверить через свойство Sheets.Count, и создать Sheets.Add()
---
Если целиком, то вроде так должно работать:

```1c
    Листы = ExcelWB.Sheets;

    Пока Листы.Count < 3 Цикл
    Листы.Add();
    КонецЦикла;

    //Создаем шапку лист1

    Лист = ExcelWB.Sheets(1);

    Лист.Name = "главная";
    Лист.Columns("A").NumberFormat = "0"; //Формат колонки - Число целое
    Лист.Columns("B").NumberFormat = "@"; //Текстовый формат колонки
    Лист.Columns("C").NumberFormat = "ДД.ММ.ГГГГ"; //Формат колонки - Дата
    Лист.Columns("D").NumberFormat = "ДД.ММ.ГГГГ"; //Формат колонки - Дата
    Лист.Columns("E").NumberFormat = "0"; //Формат колонки - Число целое
    Лист.Columns("F").NumberFormat = "@"; //Текстовый формат колонки
    Лист.Columns("G").NumberFormat = "@"; //Текстовый формат колонки
    //Создаем шапку лист 2

    Лист = ExcelWB.Sheets(2);

    Лист.Name ="товар - движение по складу";
    Лист.Columns("A").NumberFormat = "0";
    Лист.Columns("B").NumberFormat = "@";
    Лист.Columns("C").NumberFormat = "ДД.ММ.ГГГГ";
    Лист.Columns("D").NumberFormat = "ДД.ММ.ГГГГ";
    Лист.Columns("E").NumberFormat = "0";
    Лист.Columns("F").NumberFormat = "@";
    Лист.Columns("G").NumberFormat = "@";
    Лист.Columns("H").NumberFormat = "@";
    Лист.Columns("I").NumberFormat = "@";
```
---
Листы = ExcelWB.Sheets;

Пока Листы.Count < 3 Цикл
      Листы.Add();
КонецЦикла;
Ух ну вроде поперло. Огромнейшее спасибо!
---
а в отладке то что видно? Может нет такого листа?
"Лист = ExcelWB.Sheets(1);" - это, как я понимаю, проходит нормально?
---
ExcelWB.Sheets(2).
Это ведь не создание нового листа, а выбор, может второго листа просто нет?
Открыл Excel 2007 - там в новой книге сразу три листа, в 2016 - только один.
Можно проверить через свойство Sheets.Count, и создать Sheets.Add()
---
Согласен. Но как мне это сделать. К сожалению не программист, буду рад на вашу помощь. Спасибо!
---
ааааа. все допер, извините за нубство. Спасибо (4)
---
теперь новая проблема с этим.

выгружается но не в том порядке.

было
Главная
Товар - движение по складу
товар - остатки товара

Стало
товар - остатки товара
Товар - движение по складу
Главная

Подскажите как сделать как было ) Спасибо!
---
Лист = ExcelWB.Sheets(1); Все верно там именно так, нее затер это уже я сам дописал (select();) методом тыка.
---
Может попробовать убрать .select() - в первом блоке ведь без него?
---
Это я сам добавил. уже убрал. ошибка та же.
вот тут (4) мысль верна, но как это сделать не догоняю.
---
выгружается но не в том порядке.

было
Главная
Товар - движение по складу
товар - остатки товара

Стало
товар - остатки товара
Товар - движение по складу
Главная

Подскажите как сделать как было ) Спасибо!
---
в начале
Sheets = ExcelWB.Sheets;
Пока Sheets.Count < 3 Цикл Sheets.Add() КонецЦикла;
остальное в обработке не трогать.
---
Пока Sheets.Count < 3 Цикл Sheets.Add() КонецЦикла;

```1c
    //Создаем шапку лист1

    Лист = ExcelWB.Sheets;
    Пока Sheets.Count < 3 Цикл Sheets.Add() КонецЦикла;
    Лист.Name = "главная";
    Лист.Columns("A").NumberFormat = "0"; //Формат колонки - Число целое
    Лист.Columns("B").NumberFormat = "@"; //Текстовый формат колонки
    Лист.Columns("C").NumberFormat = "ДД.ММ.ГГГГ"; //Формат колонки - Дата
    Лист.Columns("D").NumberFormat = "ДД.ММ.ГГГГ"; //Формат колонки - Дата
    Лист.Columns("E").NumberFormat = "0"; //Формат колонки - Число целое
    Лист.Columns("F").NumberFormat = "@"; //Текстовый формат колонки
    Лист.Columns("G").NumberFormat = "@"; //Текстовый формат колонки
```

```1c
    {ВнешняяОбработка.NEON.Форма.Форма.Форма(199,7)}: Переменная не определена (Sheets)
    Пока <<?>>Sheets.Count < 3 Цикл Sheets.Add() КонецЦикла; (Проверка: Сервер)
    {ВнешняяОбработка.NEON.Форма.Форма.Форма(199,29)}: Переменная не определена (Sheets)
    Пока Sheets.Count < 3 Цикл <<?>>Sheets.Add() КонецЦикла; (Проверка: Сервер)
    {ВнешняяОбработка.NEON.Форма.Форма.Форма(199,7)}: Переменная не определена (Sheets)
    Пока <<?>>Sheets.Count < 3 Цикл Sheets.Add() КонецЦикла; (Проверка: Сервер)
    {ВнешняяОбработка.NEON.Форма.Форма.Форма(199,29)}: Переменная не определена (Sheets)
    Пока Sheets.Count < 3 Цикл <<?>>Sheets.Add() КонецЦикла; (Проверка: Сервер)
    {ВнешняяОбработка.NEON.Форма.Форма.Форма(199,7)}: Переменная не определена (Sheets)
    Пока <<?>>Sheets.Count < 3 Цикл Sheets.Add() КонецЦикла; (Проверка: Сервер)
    {ВнешняяОбработка.NEON.Форма.Форма.Форма(199,29)}: Переменная не определена (Sheets)
```
---
Сообщение было скрыто модератором.
---
сделал так

```1c
    Лист = ExcelWB.Sheets;
    Пока ExcelWB.Sheets.Count < 3 Цикл ExcelWB.Sheets.Add() КонецЦикла;
```

Но при запуске обработки теперь вот такая ошибка

{ВнешняяОбработка.NEON.Форма.Форма.Форма(201)}: Поле объекта не обнаружено (Name)
 Лист.Name = "главная";
---
Для начала попробуйте именовать переменные так, чтобы они обозначали то, чем являются.
Например, первой строкой у вас

```1c
    Лист = ExcelWB.Sheets;
```

На самом деле "Sheets" это коллекция листов и свойства "Name" у неё нет, но вы пытаетесь его присвоить, считая, что это один лист.
Корректно будет примерно так:

```1c
    Листы = ExcelWB.Sheets;

    Пока Листы.Count < 3 Цикл
    Листы.Add();
    КонецЦикла;

    Лист = Листы(1);
    Лист.Name = "главная";
```

Кстати, объектная модель офиса отлично описана на msdn:
https://msdn.microsoft.com/en-us/vba/excel-vba/articles/sheets-object-excel
---
Листы = ExcelWB.Sheets;

 Пока Листы.Count < 3 Цикл
          Листы.Add();
 КонецЦикла;

Лист = Листы(1);
Лист.Name = "главная";

Лист = <<?>>Листы(); (Проверка: Сервер)
{ВнешняяОбработка.NEON.Форма.Форма.Форма(203,9)}: Процедура или функция с указанным именем не определена (Листы)
 Лист = <<?>>Листы(); (Проверка: Сервер)
{ВнешняяОбработка.NEON.Форма.Форма.Форма(215,9)}: Процедура или функция с указанным именем не определена (Листы)
 Лист = <<?>>Листы(); (Проверка: Сервер)

я совсем не в теме...я.... есть смысл заплатить специалисту? времени совсем нет решать неделю.
---
я там неправильно написал

вот здесь ошибка (1с пытается вызвать функцию Листы()), напишите
Лист = ExcelWB.Sheets(1);
---
Если целиком, то вроде так должно работать:

```1c
    Листы = ExcelWB.Sheets;

    Пока Листы.Count < 3 Цикл
    Листы.Add();
    КонецЦикла;

    //Создаем шапку лист1

    Лист = ExcelWB.Sheets(1);

    Лист.Name = "главная";
    Лист.Columns("A").NumberFormat = "0"; //Формат колонки - Число целое
    Лист.Columns("B").NumberFormat = "@"; //Текстовый формат колонки
    Лист.Columns("C").NumberFormat = "ДД.ММ.ГГГГ"; //Формат колонки - Дата
    Лист.Columns("D").NumberFormat = "ДД.ММ.ГГГГ"; //Формат колонки - Дата
    Лист.Columns("E").NumberFormat = "0"; //Формат колонки - Число целое
    Лист.Columns("F").NumberFormat = "@"; //Текстовый формат колонки
    Лист.Columns("G").NumberFormat = "@"; //Текстовый формат колонки
    //Создаем шапку лист 2

    Лист = ExcelWB.Sheets(2);

    Лист.Name ="товар - движение по складу";
    Лист.Columns("A").NumberFormat = "0";
    Лист.Columns("B").NumberFormat = "@";
    Лист.Columns("C").NumberFormat = "ДД.ММ.ГГГГ";
    Лист.Columns("D").NumberFormat = "ДД.ММ.ГГГГ";
    Лист.Columns("E").NumberFormat = "0";
    Лист.Columns("F").NumberFormat = "@";
    Лист.Columns("G").NumberFormat = "@";
    Лист.Columns("H").NumberFormat = "@";
    Лист.Columns("I").NumberFormat = "@";
```
---
Листы = ExcelWB.Sheets;

Пока Листы.Count < 3 Цикл
      Листы.Add();
КонецЦикла;
Ух ну вроде поперло. Огромнейшее спасибо!