Страницы: 1
RSS
Появилась ошибка при вставке объекта. "Вставка объекта неосуществима"
 
Добрый день всем!    
Суть проблемы:    
На своем ноутбуке разрабатываю макрос обработки нескольких файлов excel. Но это не так важно.  
На листе у меня есть кнопка, по которой просто запускается макрос. До некоторых пор все работало и нажималось. А потом что-то случилось... (О_о)    
Кнопка на листе перестала нажиматься. Как только не изголялся. Более того, при вставке любого объекта на новый лист в совершенно новый файл вызывал ошибку "Вставка объекта неосуществима".    
Я не припомню чтобы что-то устанавливал критическое. На другой машине все работает. На моей - нет.    
В интернете облазил все сайты, доступные моему поисковому навыку - нашел 3 темы, одна на здешнем ресурсе. И никто не знает как справится с этой проблемой, кроме как переустановить полностью систему (!) (О_о)  
Помогите советом ;).    
Где копать?
 
хотел вставить видео, но запрещают правила. Вот снимок экрана.
 
Раз на другой машине работает, проблема с первой машиной. Попробуйте для начала переустановить не систему, а Офис - это быстро.
 
Для начала можно откатить систему на период раньше глюков. Если восстановление не отключено:-)
Я сам - дурнее всякого примера! ...
 
А глюк возникает только в конкретном файле на конкретном листе или даже на новом пустом файле?  
Если глюк привязан к листу/листам конкретной книги, то это может быть что-то сходное с тем, когда структура начинала глючить при большом числе примечаний. При попытке группировки строк/столбцов выдавалось сообщение, что объект не может быть перемещён за пределы листа.  
Pavel55 выяснил, что это из-за фиксированного размера примечаний. И сделал такую процедурку, запуск которой исправляет глюк НА ЛИСТЕ:  
Private Sub Починить_структуру()  
'---------------------------------------------------------------------------------------  
' Procedure    : Починить_структуру  
' Author       : Pavel55  
' Topic_HEADER : "Обьект невозможно перместить за пределы листа" - ???  
' Topic_URL    : http://www.planetaexcel.ru/forum.php?thread_id=7886  
' Post_Author  : Pavel55  
' Post_URL     :  
' DateTime     : 19.01.2009, 12:05  
' Purpose      : позволяет устранить ошибку при скрытии столбцов "Объект невозможно переместить за пределы листа"  
' Notes        : устанавливает свойство каждого комментария "перемещать и изменять объект вместе с ячейками"  
'---------------------------------------------------------------------------------------  
  Dim iComment As Comment  
  For Each iComment In ActiveSheet.Comments  
     'iComment.Shape.Placement = xlMoveAndSize  
     iComment.Shape.Placement = xlMove  
     iComment.Shape.TextFrame.AutoSize = True  
  Next  
  MsgBox "Все комментарии на листе обработаны!" & vbCrLf & "Теперь структура глючить не должна.", vbInformation, "Комментарии"  
End Sub  
 
Попробуйте. Хуже-то точно не станет.
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
 
{quote}{login=Alex_ST}{date=23.09.2012 11:46}{thema=}{post}А глюк возникает только в конкретном файле на конкретном листе или даже на новом пустом файле?{/post}{/quote}Алекс, читаем внимательно: "при вставке любого объекта на новый лист в совершенно новый файл вызывал ошибку" :-)
 
Попробуйте удалить кэшированные ActiveX элементы, для этого:  
1. Закройте EXCEL и для удобства закройте все окна  
2. Нажмите одновременно клавишу "Windows" и "R"  
или на панели задач нажмите Пуск – Выполнить    
3. Введите команду: %APPDATA%\Microsoft\Forms и нажмите Enter  
4. В открывшейся папке удалите все файлы с расширением EXD  
 
В операционной системе XP обычно это папка:  
C:\Documents and Settings\%USERNAME%\Application Data\Microsoft\Forms\  
 
В операционной системе Win7 это папка:  
C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Forms\  
 
Или запустите на выполнение приложенный файл ExcelFix.bat    
При этом автоматически будут удалены EXD файлы в папке %APPDATA%\Microsoft\Forms , а также удалятся ещё и файлы XLB пользовательских настроек в папке %APPDATA%\Microsoft\Excel
 
Благодарю за отзывчивость ;)    
Итак, по порядку.    
1. Скачал ваш батник, закрыл ексель, запустил батник. Потом проверил вручную.  
Папки %APPDATA%\Microsoft\Forms вообще не было, а в папке %APPDATA%\Microsoft\Excel файлов не было, была только одна папка что то XLSTART. Внутри тоже пусто.    
Перезагрузил комп.    
- не помогло.  
 
2. Вставил в модуль процедуру Private Sub Починить_структуру().  
Запустил ее через F5. МесажБокс мне сказал что "Теперь структура глючить не должна" и я обрадовался. Все-таки оптимизм штука заразительная. Но... не вышел каменный цветок.  
- не помогло.  
 
Думаю попробовать снести офис. Но в соседней ветке пишут, что не помогает.    
Переустанавливать систему - это геморрой на месяц.  
Пока думаю... Так то макросы все работают.
 
А может быть просто MSCOMCTL.OCX поломался?  
Вот здесь http://www.planetaexcel.ru/forum.php?thread_id=42960&page_forum=6&allnum_forum=93 из-за его глюков у народа ListView глючил.  
Попробуйте скачать и установить мой MSCOMCTL.OCX отсюда : http://minus.com/lbddmJvMIfNz0u (можно просто заменить существующий - у ребят это получалось)
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
 
Нужно бы почистить еще и все Temp папки (удалить подпапки VBE и Excel8).  
 
Уточните:  
1. Какая у Вас операционная система (XP, Vista, Win7)?  
2. Какая версия Excel?  
3. Если Excel 2010, то не 64-битный ли?  
4. Производились ли (автоматически или вручную) обновления операционки или Office?  
 
Доберусь до дома, приложу батник, который почистит наиболее популярные папки, куда еще могут прописываться EXD файлы.  
 
То, что нет папки %APPDATA%\Microsoft\Forms - признак проблемы, радует то, что обычно переустановка excel должна помочь в этом случае, но нужно сначала уточнить пункты 1...4 выше.
 
Приложил обновленный BAT-файл для очистки EXD файлов, надеюсь, во всех местах, где они могли бы спрятаться.  
 
Содержание ExcelFix.bat такое:  
 
@echo off  
del "%APPDATA%\Microsoft\Forms\*.exd"  
del "%APPDATA%\Microsoft\Excel\*.xlb"  
del "%APPDATA%\Roaming\Microsoft\Forms\*.exd"  
del "%Temp%\VBE\*.exd"  
del "%Temp%\Excel8.0\*.exd"  
del "%APPDATA%\Microsoft\Local\*.exd"  
del "%USERPROFILE%\Local Settings\Temp\*.exd"  
del "%USERPROFILE%\Local Settings\Temp\VBE\*.exd"  
del "%USERPROFILE%\Local Settings\Temp\Excel8.0\*.exd"  
del "%SystemRoot%\Temp\VBE\*.exd"  
del "%SystemRoot%\Temp\Excel8.0\*.exd"  
 
В папке "%APPDATA%\Microsoft\Forms\" или "%APPDATA%\Roaming\Microsoft\Forms\" должны быть файлы с расширением BOX. Если их нет, переустановите Office.  
Переустановку Office вообще нужно сделать, чтобы сузить область поиска причин.  
А причин проблемы много, одной из них может быть и установка обновления безопасности Microsoft.
 
{quote}{login=Дядя Ву}{date=24.09.2012 08:32}{thema=}{post}2. Вставил в модуль процедуру Private Sub Починить_структуру().  
Запустил ее через F5. МесажБокс мне сказал что "Теперь структура глючить не должна" и я обрадовался. Все-таки оптимизм штука заразительная. Но... не вышел каменный цветок.  
- не помогло.{/post}{/quote}  
Что за Sub Починить_структуру ?  
 
Попробуйте в VBE создать форму из меню Insert - Userform.  
В Tools - References должен установиться флажок на Microsoft Forms 2.0 Object Library.  
После этого попробуйте на эту форму установить кнопку и другие контролы.  
Сообщите, все ли прошло удачно.
 
>Уточните:  
>1. Какая у Вас операционная система (XP, Vista, Win7)?  
>2. Какая версия Excel?  
>3. Если Excel 2010, то не 64-битный ли?  
>4. Производились ли (автоматически или вручную) обновления операционки или Office?  
Windows XP SP3 ZverDVD v2011.5 Обновления не устанавливал.  
Excel 2003 SP3  
 
> Что за Sub Починить_структуру ?  
Это Alex_ST советовал запустить приведенную им процедуру для того, чтобы починить, как он выразился, "глюк НА ЛИСТЕ"  
 
>Попробуйте в VBE создать форму из меню Insert - Userform.  
При попытке создать форму появляется критическая ошибка "System Error &H8007007E (-2147024770). Не найден указанный модуль." Приведен на принтскрине.
 
В Tools - References в моем файле стоит 5 галочек (приведено на принтскрине). Microsoft Forms 2.0 Object Library тоже активировано, но дело в том что эту библиотеку я качал отдельно dll-кой и ставил отдельно. Но совсем для другого проекта. Причем проекта в Word. (мне она была нужна, чтобы работать с буффером обмена) А когда делал свой проект в Excel, я ее специально не активировал.    
 
Когда пытаюсь снять галочку с Microsoft Forms 2.0 Object Library, появляется предупреждение "Can't remove control or reference; in use"  
 
Когда создаю новый файл, этой библиотеки нет в перечне Tools - References.  
 
 
{/post}{/quote}
 
Очевидно, кривая установка операционной системы. Zver - это вообще левизна какая-то. И Office инсталлирован некомплектно, так как нет ничего в %APPDATA%\Microsoft\Forms\.  
 
XP SP3 сама по себе включает в себя библиотеку Fm20.dll, которая автоматически и комплектно инсталлируется в  C:\WINDOWS\system32\  
Об этом указано на официальном сайте Mocrosoft http://support.microsoft.com/kb/832671  
У Вас же Fm20.dll установлена отдельно в D:\Наряды\  
Проверьте, если есть C:\WINDOWS\system32\Fm20.dll , то нужно разрегистрировать  D:\Наряды\Fm20.dll и зарегистрировать C:\WINDOWS\system32\Fm20.dll  
 
А по-хорошему, нужно переустановить, как минимум, Office.  
Как это сделать подчистую, обсуждалось здесь: http://www.sql.ru/forum/actualthread.aspx?tid=420025  
 
А то, что в новом проекте нет ссылки (reference) на Fm20.dll и то, что после установки этой ссылки она не удаляется - нормально.
 
Что-то мне подсказывает что не в звере дело. Хотя бы потому что вначале всё работало... Но с вашим опытом и мудростью мне тягаться рано ;-)    
Буду вечером пошагово чистить-переустанавливать, о результатах отпишусь.
 
Может, и не в звере дело, а какая-нибудь программа при установке переустанавливала библиотеку Fm20.dll и подвисла.  
Насчет работала раньше - зачем-то же вы скачивали отдельно Fm20.dll  
А этот файл ведь должен штатно быть в C:\Windows\System32\ и с ним должно было все работать.
 
Зверская сборка ХРюши была отличная, со множеством новых драйверов устройств и практически безглючная. Я сам на ней сидел до января этого года пока мне на работе новый комп с семёркой не поставили.  
А вот то, что Fm20.dll расположена где-то в …  - это точно может привести к плачевным результатам.  
Скорее всего не на месте и ещё что-нибудь.  
Правильно сказал ZVI: лучше снести начисто и установить по новой весь Офис.
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
Страницы: 1
Наверх