Excel не выполняется, когда надстройки автоматизации загружается

Переводы статьи Переводы статьи
Код статьи: 284876 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

В этой статье

Проблема

При загрузке Microsoft Excel надстройки автоматизации во время ячейки измените режим, происходит сбой Microsoft Excel. Эта проблема возникает только с помощью надстроек автоматизации, по требованию, загруженные в Microsoft Excel.

Причина

Это может происходить, когда надстройка загружается при надстройки отображается в форме или в диалоговом окне, или в том случае, если надстройка выполняет запрос автоматизации Microsoft Excel, предпринимается попытка изменить состояние Excel. Ниже приведены примеры автоматизации запросов, которые могут привести к сбою, когда он вызывается при загрузке надстройки автоматизации в режиме редактирования ячейки в Excel:
  • Программное изменение текущего выделения. Например,:
    Application.ActiveSheet.Range("A1").Select
    					
  • Вызов свойства или метода объекта в Windows коллекции. Например,:
    Application.ActiveWindow.Zoom = 200
    					
  • Измените параметр Excel, такие как режим вычислений. Например,:
    Application.CalculationMode = xlManual
    					
Эти объекты являются примерами кода попытки изменения в среде Microsoft Excel, книги или листа; эти виды действий не разрешены в режиме редактирования.

Решение

Не пытайтесь вышеупомянутых действий во время на загрузку надстройки. Add-содержать методы, вызываемые во время загрузкиИнициализацияметод, если надстройки автоматизации реализуетIDTExtensibility2интерфейс,OnConnectionиOnStartupCompleteа также методы.

Статус

Данное поведение является подтвержденной ошибкой продуктов Майкрософт, перечисленных в начале данной статьи..

Дополнительная информация

Действия по воспроизведению проблемы

  1. Начните новый проект Библиотеки ActiveX в Visual Basic.
  2. ИзProjectвыберите пунктСвойства Проект1. ИзменениеИмя проектаКому:TestAddInи выберите командуOk..
  3. Добавьте следующий код в модуль кода для класса Class1.
    Private Sub Class_Initialize()
        MsgBox "Class_Initialize"
    End Sub
    					
  4. Построение TestAddIn.dll.
  5. В Microsoft Excel начните новую книгу.
  6. В Microsoft Office Excel 2003 или Microsoft Excel 2002 выполните следующие действия.
    1. в менюToolsВыберите пункт менюНадстройкии выберите командуАвтоматизация.
    2. В списке нажмите кнопкуTestAddIn.Class1и выберите командуOk..
    3. В диалоговом окнеНадстройкидиалоговое окно, нажмите кнопкуOk..
    В Microsoft Office Excel 2007 выполните указанные ниже действия.:
    1. Перейдите на вкладкуКнопку Microsoft Officeи выберите командуПараметры Excel.
    2. Перейдите на вкладкуНадстройкиTAB:.
    3. В диалоговом окнеУправлениеВыберитеНадстройки Excelи выберите командуПерейти.
    4. В диалоговом окнеНадстройкидиалоговое окно, нажмите кнопкуАвтоматизация.
    5. В списке нажмите кнопкуTestAddin.Class1и выберите командуOk..
    6. затем –Ok..
  7. TYPE :=в любой ячейке. Появится окно сообщения с текстом «Class_Initialize».
  8. затем –Ok.Чтобы закрыть окно сообщения. Через несколько секунд Microsoft Excel не выполняется.

Ссылки

Дополнительные сведения см. в следующей статье базы знаний Майкрософт::
291392ИНФОРМАЦИЯ: Excel надстроек COM и автоматизация надстроек

Свойства

Код статьи: 284876 - Последний отзыв: 21 ноября 2010 г. - Revision: 3.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft Office Excel 2007
  • Microsoft Excel 2002 Standard Edition
Ключевые слова: 
kbautomation kbbug kbpending kbmt KB284876 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:284876

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com