تصحيح أخطاء البرنامج النصي لبرنامج Outlook 2007 الذي تم تشغيله بواسطة إحدى القواعد

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

سؤال

أحاول تصحيح أخطاء برنامج Outlook 2007 VBA النصي الذي يتم تشغيله بواسطة قاعدة.لقد قمت بتعيين نقطة توقف في البرنامج النصي ولكن لم يتم الوصول إليها.

السيناريو هو في الواقع أ Sub في ال ThisOutlookSession هدف.

عندما أقوم بتشغيل القاعدة على مجلد محدد، لا يبدو أن هناك شيئًا يحدث.

ما الخطأ الذي افعله؟

تحديث:

لقد أضفت أ MsgBox "Processing: " & mailItem.Subject إلى البرنامج النصي وهذا ينبثق بشكل جيد عندما أقوم بتشغيل القاعدة.ومع ذلك، لا يبدو أنني أتمكن من إيقاف البرنامج النصي عند نقاط التوقف.

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

المحلول

أعتقد أنك ربما لا ترتكب أي خطأ، لأنني مررت بنفس السلوك تمامًا.

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

ربما شيء من هذا القبيل:

Sub TestScript()
    Dim testMail As MailItem
    Set testMail = Application.CreateItem(olMailItem)
    testMail.Subject = "Test subject"
    testMail.Body = "Test body"
    Project1.ThisOutlookSession.YourScriptForDebugging testMail
End Sub

بهذه الطريقة يمكنك "الدخول" إلى الماكرو عبر مربع حوار الماكرو هذا مرة أخرى، وإجراء كل عمليات التصحيح التي تحتاجها.لقد حل مشكلتي، على أي حال.

نصائح أخرى

يمكن استخدام أي عنصر موجود لاختبار التعليمات البرمجية التي تتطلب واحدًا.

Sub passOpenItem()
    'first open an item
    codeRequiringItemParameter ActiveInspector.CurrentItem
End Sub

Sub passSeletion()
    'first select an item
    codeRequiringItemParameter ActiveExplorer.Selection(1)
End Sub

Sub codeRequiringItemParameter(itm As Object)
    Debug.Print "TypeName: " & TypeName(itm)
    Debug.Print "Class...: " & itm.Class
End Sub
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top