|
Ошибка при вызове метода контекста (Item) | ☑ | ||
---|---|---|---|---|
0
ЯТолько Спросить
09.11.18
✎
14:39
|
Доброго времени суток!
При попытке выгрузить печатную форму отчета в Excel вылетает ошибка.. {ОбщаяФорма.Отчет.Форма(1030)}: Ошибка при вызове метода контекста (Item) ЛистДанных = КнигаExcel.WorkSheets.Item(2); по причине: Произошла исключительная ситуация (0x8002000b) Часть кода Excel.Workbooks.Open(КаталогВременныхФайлов() + "tmpxls.xls"); tmpBook = Excel.Workbooks.Item(Excel.Workbooks.Count); КнигаExcel = Excel.Workbooks.Add(); ЛистТаблицы = КнигаExcel.WorkSheets.Item(1); ЛистТаблицы.Name = "Сводная Таблица"; ЛистДанных = КнигаExcel.WorkSheets.Item(2); ЛистДанных.Name = "Данные"; КнигаExcel.WorkSheets.Item(3).Delete(); tmpBook.Sheets(1).Cells.Copy(ЛистДанных.Cells); tmpBook.Close(); Кто в курсе куда копать? |
|||
1
Cyberhawk
09.11.18
✎
14:40
|
Копни в кошелек
|
|||
2
ЯТолько Спросить
09.11.18
✎
14:44
|
(1) Копал, там та же ошибка)
|
|||
3
Garykom
гуру
09.11.18
✎
14:45
|
Наверно в кошельке чего то не хватает, как и в каталоге временном.
|
|||
4
hhhh
09.11.18
✎
14:47
|
(2) лист 2 может забыл добавить?
|
|||
5
Cyberhawk
09.11.18
✎
14:48
|
(2) Так в кошельке не ошибку искать надо было
|
|||
6
Cyberhawk
09.11.18
✎
14:49
|
(4) Ага, трехарбузный ))
|
|||
7
Ns33
09.11.18
✎
14:55
|
Так обращение к листам - Sheets(1) а не Item(1)
|
|||
8
Garykom
гуру
09.11.18
✎
14:59
|
(7) .Worksheets.Item(1) = .Worksheets(1)
это эквивалентное обращение |
|||
9
ptiz
09.11.18
✎
15:03
|
(0)
КнигаExcel = Excel.Workbooks.Add(); ЛистТаблицы = КнигаExcel.WorkSheets.Item(1); ЛистТаблицы.Name = "Сводная Таблица"; ЛистДанных = КнигаExcel.WorkSheets.Item(2); Откуда второй лист-то возьмется? |
|||
10
Garykom
гуру
09.11.18
✎
15:29
|
(9) Ты еще спроси откуда третий удалится следующей строчкой ))
|
|||
11
ЯТолько Спросить
09.11.18
✎
15:37
|
(9)(10)Код не мой, я пытаюсь понять что с ним не так, т.к. сказали, что "вчера" все работало. С файлами Excel работаю редко...
А теперь как я понимаю: КнигаExcel = Excel.Workbooks.Add(); // создает книгу ЛистТаблицы = КнигаExcel.WorkSheets.Item(1);// добавляет лист в книгу, а именно команда WorkSheets соответственно Item(n) присваивает значение листу или что-то не так? |
|||
12
ЯТолько Спросить
09.11.18
✎
15:42
|
(10) Не ту часть кода скопировал...
Excel.Workbooks.Open(КаталогВременныхФайлов() + "tmpxls.xls"); tmpBook = Excel.Workbooks.Item(Excel.Workbooks.Count); КнигаExcel = Excel.Workbooks.Add(); ЛистТаблицы = КнигаExcel.WorkSheets.Item(1); ЛистТаблицы.Name = "Сводная таблица"; ЛистДанных = КнигаExcel.WorkSheets.Item(2); ЛистДанных.Name = "Данные"; tmpBook.Sheets(1).Cells.Copy(ЛистДанных.Cells); tmpBook.Close(); |
|||
13
singlych
09.11.18
✎
15:47
|
Тот кто писал код, рассчитывал на то, что эксель создает новую книгу с тремя листами по умолчанию, и забыл / не знал, что это можно переопределить.
https://support.office.com/ru-ru/article/Изменение-количества-листов-в-новой-книге-2262cf3a-0fd9-475f-a9c0-690f7173e5e4 |
|||
14
Garykom
гуру
09.11.18
✎
15:56
|
(12) Код бред сумасшедшего - оно не могло ""вчера" все работало"
|
|||
15
ЯТолько Спросить
09.11.18
✎
16:08
|
(13) Код в (12)
(0)+ Подытожим по коду: 1) создаем файл: Excel = Новый COMОбъект("Excel.Application"); 2) Определяем каталог Excel.Workbooks.Open(КаталогВременныхФайлов() + "tmpxls.xls"); 3) создаем временный файл зачем пока не понятно tmpBook = Excel.Workbooks.Item(Excel.Workbooks.Count); 4) Создаем Книгу Excel КнигаExcel = Excel.Workbooks.Add(); 5) Добавляем лист 1 и присваиваем имя ЛистТаблицы = КнигаExcel.WorkSheets.Item(1); ЛистТаблицы.Name = "Сводная таблица"; 6)При попытке создать второй лист вылетает ошибка ЛистДанных = КнигаExcel.WorkSheets.Item(2); ЛистДанных.Name = "Данные"; 7)"Ошибка при вызове метода контекста (Item) ЛистДанных = КнигаExcel.WorkSheets.Item(2); по причине: Произошла исключительная ситуация (0x8002000b) " Excel 2013 и у меня создается такое впечатление, что создается не книга, а лист? |
|||
16
singlych
09.11.18
✎
16:10
|
(15) С чего ты решил, что Item создает лист? Это свойство, а не метод.
|
|||
17
ЯТолько Спросить
09.11.18
✎
17:14
|
(16) да, точно.... надо еще подумать... получается где-то создалась книга с двумя листами и программа пытается найти второй лист которого нет...
|
|||
18
hhhh
09.11.18
✎
17:25
|
(10) этот файл из 1с записан. там один лист по-любому.
|
|||
19
ЯТолько Спросить
09.11.18
✎
17:47
|
Свойство Значение Тип
КнигаExcel COMОбъект COMОбъект AutoUpdateSaveChanges Произошла исключительная ситуация (0x800a03ec) Container Произошла исключительная ситуация (0x800a03ec) ContentTypeProperties Произошла исключительная ситуация (Microsoft Excel): Этот документ должен содержать сведения о типах содержимого. Наличие сведений о типах содержимого является общим требованием для файлов в системе управления документами. DocumentLibraryVersions Произошла исключительная ситуация: Версий этого файла не существует. Mailer Произошла исключительная ситуация (0x800a03ec) ServerPolicy Произошла исключительная ситуация (0x80070490) VBProject Произошла исключительная ситуация (Microsoft Excel): Программный доступ к проекту Visual Basic не является доверенным Отладчик показал ошибки.... |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |