|  24.12.2008, 11:55 | #1 | 
| Участник | Нужна помощь с Excel 
			
			Ax 3.0 SP4, Office 2003 Ситуация следующая - существует отчет, выводящийся в Excel, переодически при его формировании вылетает следующая ошибка "Метод "insert" в COM-объекте класса "Range" возвратил код ошибки 0x800A03EC (<неизвестно>), который означает: Cannot shift objects off sheet." В поисках решения нашел ссылку http://support.microsoft.com/kb/211769, в которой приводится макрос VBA, устраняющий эту ошибку. Вот он: Sub Test() Dim s As Shape On Error Resume Next For Each s In ActiveSheet.Shapes s.Placement = xlMoveAndSize Next End Sub В классе comExcelDocument_ru добавил метод следующего вида: X++: void changeShapesProperties() { COM workSheet, comShapes, comShape; int countShapes, i; ; if (m_comDocument) { try { workSheet = m_comDocument.ActiveSheet(); comShapes = workSheet.shapes(); countShapes = comShapes.Count(); for(i = 1; i <= countShapes; i++) { comShape = comShapes.Item(i); comShape.Placement(1); } } catch (Exception::Error) { throw error("@DIS6043"); } } } вроде бы должно работать, но выдает на строке X++: comShape.Placement(1); Error Сообщение (11:52:50) Невозможно создать рабочую книгу Microsoft Office Excel. Что я делаю не так? 
				__________________ Существует 10 типов людей: одни понимают двоичную систему, другие - нет. | 
|  | 
|  24.12.2008, 12:41 | #2 | 
| Moderator | 
			
			Да вроде должно работать. У меня следующий код отрабатывает без ошибок (Акса и Офис - такие же): X++: static void Job122(Args _args) { ComExcelDocument_RU doc = new ComExcelDocument_RU(); COM wbook; COM activeSheet; COM comShapes, comShape; int i, countShapes; ; doc.NewFile(); wbook = doc.getComDocument(); activeSheet = wbook.ActiveSheet(); comShapes = activeSheet.Shapes(); // для примера создаем два текстовых прямоугольника comShapes.AddTextbox(1, 71.25, 42, 109.5, 84.75); comShapes.AddTextbox(1, 137.25, 157.5, 153, 75.75); countShapes = comShapes.Count(); for(i = 1; i <= countShapes; i++) { comShape = comShapes.Item(i); comShape.Placement(1); info(comShape.Name()); } } | 
|  | |
| За это сообщение автора поблагодарили: Weez (1). | |
|  24.12.2008, 12:46 | #3 | 
| Участник | 
			
			видимо у вас какойто неправильный шаблон на котором какойто неправильный шэйп)
		 
				__________________ aLL woRk aNd nO JoY MAKes jAck a dULL Boy | 
|  | 
|  24.12.2008, 12:59 | #4 | 
| Участник | 
			
			Гм, может быть дело в том что работа с Аксаптой и офисом соответственно идет через Citrix.. Может с правами чего.. В общем дело похоже не в Аксапте, а в шаблоне или доступе.. Буду копать дальше, спасибо ответившим    
				__________________ Существует 10 типов людей: одни понимают двоичную систему, другие - нет. | 
|  |