10.01.14 — 08:57
{Форма.Форма.Форма(26)}: Ошибка при вызове метода контекста (Worksheets)
Док = ТабЕксель.Worksheets(«на.уд.киль»);
по причине:
Произошла исключительная ситуация (0x8002000b)
1 — 10.01.14 — 08:58
спасибо, не знал
2 — 10.01.14 — 09:00
(0)Цифру попробуй, а не текст.
3 — 10.01.14 — 09:00
В чем может быть проблема
4 — 10.01.14 — 09:01
(2) попробывать например Док = ТабЕксель.Worksheets(«1»); ?
5 — 10.01.14 — 09:04
Док = ТабЕксель.Worksheets(1);
6 — 10.01.14 — 09:07
(5) (2) теперь
{Форма.Форма.Форма(74)}: Значение не является значением объектного типа (Товары)
НоваяСтрока=НовДок.Товары.Добавить();
7 — 10.01.14 — 09:08
(6) думаешь, оно таки объектного?
8 — 10.01.14 — 09:08
(6) Что сделать то хочешь?
9 — 10.01.14 — 09:08
(6)Посмотри ТипЗнч(НовДок) в табло. Скорее всего удивишься
10 — 10.01.14 — 09:10
11 — 10.01.14 — 09:11
(8) Выгрузить 1с Excel в 1с
12 — 10.01.14 — 09:12
(11) Может быть прочитать данные из Экселя и записать их в 1С? Я угадал? )
13 — 10.01.14 — 09:12
(9) Где это поглядеть. Просто первй раз с этим столкнулся.
14 — 10.01.14 — 09:13
(13) Ctrl+Alt+W
15 — 10.01.14 — 09:14
(9) (14) научите его ещё Сообщать вместо шифт+ф9, ага
16 — 10.01.14 — 09:17
(15) Да ладно. От задачи зависит же. Когда табло удобнее, когда расчет выражения.
17 — 10.01.14 — 09:19
(14) Пусто=)
18 — 10.01.14 — 09:20
(17) внезапно, правда?
19 — 10.01.14 — 09:20
20 — 10.01.14 — 09:21
(17)Ну тогда у тебя нарисовалась задача минимум — сделать чтобы оно было типа «ДокументОбъект»:-)
21 — 10.01.14 — 09:22
+Код своей загрузки вывали сюда, подскажут быстрее в 146 раз.
22 — 10.01.14 — 09:23
*задумчиво
пора что-то придумывать спрашивать вместо фотки у мужиков. А то нарушаем гармонию Вселенной.
23 — 10.01.14 — 09:23
(21) Минуту Щас выгружу… Просто в чем дело то. В старой базе обработка работала. Теперь, когда начали год создали новую бази и там обработка не пашет.
24 — 10.01.14 — 09:26
(20) стишок или песенку?
25 — 10.01.14 — 09:27
(24) -> (22)
26 — 10.01.14 — 09:28
(22)Спрашивать у мужиков надо фотки жен или подруг)
27 — 10.01.14 — 09:29
28 — 10.01.14 — 09:29
Вот обработка
29 — 10.01.14 — 09:32
(24)Ага. Видео топикстартера декламирующего стишок, стоя на табуретке:-) Это идея!
30 — 10.01.14 — 09:33
(26)Начнут ныть что они бедные , несчастные и насквозь холостые и неоподруженые:-)
31 — 10.01.14 — 09:33
Если Док.Cells(Row, 1).Value= «К /с 30101810500000000609 пгт. Кильмезь, ул. Свободы, 12 а» Тогда
Тут у тебя скорее всего условие не пролазит, а далее у тебя уже нет создания дока, думай дальше.
32 — 10.01.14 — 09:34
И, с трудом верится, что это «работало, работало и перестало с нового года!».
33 — 10.01.14 — 09:41
(32) В старой базе работало. Она там камазом переханная и не обновленная. Щас стоит БПпроф послденяя… и на ней не пашет
34 — 10.01.14 — 10:10
(33) а новую базу ты камазом, конечно, переехать забыл
35 — 10.01.14 — 11:02
(32) Думаю, он закрыл всплывшее окно Excel-я. 🙂
36 — 10.01.14 — 11:21
(31) сравнивать значение определенной ячейки с константой? готично…
(33) а если изменятся реквизиты поставщика/покупателя — другую обработку писать?
stix2010
37 — 10.01.14 — 15:01
(0) Сейчас писать загрузки через COM немодно, используйте ADO
или загрузку файлов xlsx,
недавно пришлось переписывать загрузки из-за лицензий ms office
I have the following code to open a workbook and keep just one sheet:
//Get a new workbook.
oWB = app.Workbooks.Add(Missing.Value);
int len = oWB.Sheets.Count;
for (int i = 1; i < len; i++)
{
((Worksheet)oWB.Sheets[i]).Delete();
}
oSheet = (Microsoft.Office.Interop.Excel.Worksheet)oWB.ActiveSheet;
This code has worked for many years in many client configurations.
For some reason, I have a customer with excel 2013 (in Hebrew), and on his machine I get the following exception:
System.Runtime.InteropServices.COMException (0x8002000B): Invalid index. (Exception from HRESULT: 0x8002000B (DISP_E_BADINDEX))
at Microsoft.Office.Interop.Excel.Sheets.get__Default(Object Index)
at IOSIGHT.Win.ActiveReports.ExcelHelper.StartExcel()
If I understand the situation, it seems that for some reason the workbook was left with no sheets,
so then call to oWb.ActiveSheet throws an exception.
Any idea what caused this?
And yes I saw other posts on the same exception, but my code does not match their scenarios.
************** Текст исключения **************
System.Runtime.InteropServices.COMException (0x8002000B): Неверный индекс. (Исключение из HRESULT: 0x8002000B (DISP_E_BADINDEX))
в Microsoft.VisualBasic.CompilerServices.LateBinding .LateGet(Object o, Type objType, String name, Object[] args, String[] paramnames, Boolean[] CopyBack)
в Microsoft.VisualBasic.CompilerServices.NewLateBind ing.LateGet(Object Instance, Type Type, String MemberName, Object[] Arguments, String[] ArgumentNames, Type[] TypeArguments, Boolean[] CopyBack)
в WindowsApplication1.Form_Main_Window.Form_Main_Win dow_Load(Object sender, EventArgs e)
в System.EventHandler.Invoke(Object sender, EventArgs e)
в System.Windows.Forms.Form.OnLoad(EventArgs e)
в System.Windows.Forms.Form.OnCreateControl()
в System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
в System.Windows.Forms.Control.CreateControl()
в System.Windows.Forms.Control.WmShowWindow(Message& m)
в System.Windows.Forms.Control.WndProc(Message& m)
в System.Windows.Forms.Form.WmShowWindow(Message& m)
в System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
************** Загруженные сборки **************
mscorlib
Версия сборки: 4.0.0.0
Версия Win32: 4.7.2633.0 built by: NET471REL1LAST_C
CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/mscorlib.dll
—————————————-
Бриз_ПП
Версия сборки: 1.7.0.1
Версия Win32: 1.7.0.1
CodeBase: file:///C:/Breez_PP/%D0%91%D1%80%D0%B8%D0%B7_%D0%9F%D0%9F_x64.exe
—————————————-
Microsoft.VisualBasic
Версия сборки: 10.0.0.0
Версия Win32: 14.7.2556.0 built by: NET471REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/Microsoft.VisualBasic/v4.0_10.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll
—————————————-
System
Версия сборки: 4.0.0.0
Версия Win32: 4.7.2556.0 built by: NET471REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
—————————————-
System.Core
Версия сборки: 4.0.0.0
Версия Win32: 4.7.2633.0 built by: NET471REL1LAST_C
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
—————————————-
System.Windows.Forms
Версия сборки: 4.0.0.0
Версия Win32: 4.7.2556.0 built by: NET471REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
—————————————-
System.Drawing
Версия сборки: 4.0.0.0
Версия Win32: 4.7.2556.0 built by: NET471REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
—————————————-
System.Configuration
Версия сборки: 4.0.0.0
Версия Win32: 4.7.2556.0 built by: NET471REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
—————————————-
System.Xml
Версия сборки: 4.0.0.0
Версия Win32: 4.7.2612.0 built by: NET471REL1LAST_B
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
—————————————-
System.Runtime.Remoting
Версия сборки: 4.0.0.0
Версия Win32: 4.7.2556.0 built by: NET471REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Runtime.Remoting/v4.0_4.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll
—————————————-
System.Data
Версия сборки: 4.0.0.0
Версия Win32: 4.7.2633.0 built by: NET471REL1LAST_C
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_64/System.Data/v4.0_4.0.0.0__b77a5c561934e089/System.Data.dll
—————————————-
System.Data.resources
Версия сборки: 4.0.0.0
Версия Win32: 4.7.2556.0 built by: NET471REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Data.resources/v4.0_4.0.0.0_ru_b77a5c561934e089/System.Data.resources.dll
—————————————-
System.Transactions
Версия сборки: 4.0.0.0
Версия Win32: 4.7.2556.0 built by: NET471REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_64/System.Transactions/v4.0_4.0.0.0__b77a5c561934e089/System.Transactions.dll
—————————————-
System.EnterpriseServices
Версия сборки: 4.0.0.0
Версия Win32: 4.7.2556.0 built by: NET471REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_64/System.EnterpriseServices/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.EnterpriseServices.dll
—————————————-
Microsoft.Office.Interop.Excel
Версия сборки: 15.0.0.0
Версия Win32: 15.0.4569.1506
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/Microsoft.Office.Interop.Excel/15.0.0.0__71e9bce111e9429c/Microsoft.Office.Interop.Excel.dll
—————————————-
office
Версия сборки: 15.0.0.0
Версия Win32: 15.0.4613.1000
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/office/15.0.0.0__71e9bce111e9429c/office.dll
—————————————-
mscorlib.resources
Версия сборки: 4.0.0.0
Версия Win32: 4.7.2556.0 built by: NET471REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_ru_b77a5c561934e089/mscorlib.resources.dll
—————————————-
System.Windows.Forms.resources
Версия сборки: 4.0.0.0
Версия Win32: 4.7.2556.0 built by: NET471REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_ru_b77a5c561934e089/System.Windows.Forms.resources.dll
—————————————-
- Remove From My Forums
-
Question
-
Hello All,
I’ve recently come across a problem with creating excel files on a particular computer. The computer in question is XP SP3 with Excel 2007. Whenever I try to create an Excel file, add sheets and change the sheet names I come across this error:
Invalid index. (Exception from HRESULT: 0x8002000B (DISP_E_BADINDEX))
What confuses me is that the same piece of code in an earlier version of the program worked perfectly fine on the computer. Not only that, but the current code that throws this error on the aforementioned system works perfectly on a machine with XP SP3 and
Excel 2003, and another with Windows 7 and Excel 2010.Dim objExcel As New Excel.Application
objExcel.Workbooks.Add()
objExcel.Worksheets.Add()Code works fine up until here:
objExcel.ActiveWorkbook.Worksheets(1).Name = «blah blah»
My gut is telling me this is more an issue with the system than it is with the code as I’ve tried this before and on different machines and had it working perfectly. I’ve looked at the other 0x8002000B error posts and they weren’t entirely applicable to
my specific issue. I’m completely lost though, and would appreciate any comments or advice anyone has on this.
Answers
-
The error does not necessarily come from the index of the worksheet. It can also mean that, inernally, a value <> 0 has been passed to IDispatch::GetTypeInfo.
Based on the line of your first post,
objExcel.ActiveWorkbook.Worksheets(1).Name = «blah blah»
try splitting it: (Also add the right types with each declaration or As Object if you have option strict off.)
Dim wb = objExcel.ActiveWorkbook
Dim sheets = wb.Worksheets
Dim count = sheets.count ‘if it exists
Msgbox (count)
Dim sheet = sheets(0)Does the last line throw the exception?
Armin
-
Marked as answer by
Wednesday, July 11, 2012 7:02 PM
-
Marked as answer by