يعرض PowerPoint خطأ "لا يمكن بدء التطبيق" عند تضمين كائن مخطط Excel فيه

StackOverflow https://stackoverflow.com/questions/3003448

سؤال

هذه مشكلة شائعة جدًا عندما يتم تضمين ورقة عمل Excel أو الرسم البياني في Word أو PowerPoint. أرى هذه المشكلة في كل من الكلمة و PowerPoint والسبب الذي يبدو أنه إضافة COM متصلة بـ Excel. تتم كتابة addin com في C# (.NET). انظر الصور المرفقة لحوار حوار الخطأ.

لقد قمت بتصحيح الإضافة ووجدت سلوكًا غريبًا للغاية. تعمل الأساليب OnConnection (...) ، OnDisconnection (...) وما إلى ذلك في Addin Com بشكل جيد حتى أضيف معالج الحدث إلى الكود. أي التعامل مع ورقة العمل _sheetchange أو SelectionChange أو أي حدث مماثل متاح في Excel. بمجرد أن أضيف حتى معالج أحداث واحد (على الرغم من أن الكود الخاص بي يحتوي على عدة) ، فإن Word و PowerPoint تبدأ في الشكوى ولا تنشط الكائن المدمج.

في بعض المنشورات على الإنترنت ، طُلب من الأشخاص إزالة الإضافات المضادة للفيروسات للمناصب (لا شيء في حالتي) لذلك يجعلني أعتقد أن المشكلة مرتبطة إلى حد ما بإضافات com التي يتم تحميلها عند تنشيط التطبيق المضيف الكائن.

هل لدى أي شخص أي فكرة عما يحدث هنا؟PowerPoint Error

Word Error

تم تحديثه 21 يونيو 2010


اكتشف أن كل من الأحداث والتغييرات في مجموعة Comaddins يخلق مشاكل عندما يتم تنشيط الكائن المضمن. لقد استخدمت الآن خاصية Excel :: Application :: USERCONTROL للتحقق مما إذا كان Excel في حالة مضمنة ثم تخطي أي رابط onConnection (...) ورمز ONDISCONNECTION (...).

يمكن أن يكون أحد الحلول لمشكلة الأحداث هو نقل جميع أحداث مستوى التطبيق إلى رمز VBA والاتصال بـ .NET. وبالتالي إزالة جميع معالجات الأحداث من .NET Code.

قد يكون هناك المزيد من السيناريوهات حيث قد يفشل كائن مضمن في التهيئة ، لذا اخترت تعطيل Addin Com IE تخطي الكود في طرق OnConnection (...) وطرق OnDisconnection (...) تمامًا.

هل كانت مفيدة؟

المحلول

إليكم ما فعلته للتخلص من هذه المشكلة المزعجة:

  1. قم بإزالة جميع معالجات الأحداث في رمز .NET والاعتماد على أحداث تطبيق VBA أي بدلاً من التعامل مع Excel :: Application :: Workshive_Activate (...) ، تعامل معها في وحدة VBA واتصل إلى الإضافة عند استلام الحدث . يبدو أن معالجات الأحداث .NET تفسد الدولة بطريقة أو بأخرى.

  2. قم بتعطيل أي رمز يتفاعل مع الإضافة في OnConnection (...) باستخدام العلم في المخصص المخصص. انظر الرابط التالي للحصول على تفاصيل حول العلم:com addins بالتفصيل

ذكرت عن خاصية Excel :: Application :: UserControl ولكنها غير موثوقة في بعض الحالات. نحتاج إلى النظر في الحالات التالية والمصفوفة المخصصة هو OnConnection (...) هو الأكثر موثوقية:

  1. بدأ Excel كتطبيق مستقل
  2. بدأ Excel كتطبيق مضمن في بعض التطبيقات الأخرى
  3. بدأ Excel من خلال الأتمتة على سبيل المثال createObject (...)

فضلت تعطيل الإضافة تمامًا عندما يكون Excel في الوضع المضمّن. يعتمد ذلك على الرمز الذي تنفذه في OnConnection (...) وكيف تستجيب التطبيقات الأخرى له عند تنفيذها. يجب تنفيذ النقطة رقم 1 لحل هذه المشكلة.

إذا كان لدى أي شخص حل أفضل لهذا ، فيرجى إخبارنا :)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top