By كريستيانفاككا@gmail.com يوم الاثنين 05 نوفمبر 2018
نشر في بريد اوتلوك
الردود 2
الإعجابات 0
المشاهدات 5.5K
الأصوات 0
الكود الخاص بي يعمل.
الكود يفعل كل ما أريد.
رمز معقد للغاية. أعتقد أنه يجب أن يكون أقصر.
يجب أن أقوم بإدخال ما يصل إلى 200 مجلد وبهذه الطريقة يجب أن أقوم بعمل رمز طويل جدًا.
يجب فحص كافة الرسائل الموجودة في كافة مجلدات البريد الوارد. الكل باستثناء مجلدين. تسمى المجلدات التي لا تحتاج إلى التحقق منها: "" و "".
هل يساعدني أحد؟
شكرا.

Sub MoveItems7TEST()

تعتيم myNameSpace مثل Outlook.NameSpace
تعتيم myInbox باسم Outlook.Folder
تعتيم myInbox2 باسم Outlook.Folder
تعتيم myInbox3 باسم Outlook.Folder

تعتيم myDestFolder باسم Outlook.Folder

تعتيم myItems كـ Outlook.Items
تعتيم myItems2 كـ Outlook.Items
تعتيم myItems3 كـ Outlook.Items

تعتيم myItem ككائن

تعيين myNameSpace = Application.GetNamespace("MAPI")
"بوستا في الوصول."
تعيين myInbox = myNameSpace.GetDefaultFolder(olFolderInbox)
"ستيف."
تعيين myInbox2 = myNameSpace.GetDefaultFolder(olFolderInbox).Folders("Stef")
"خدمة."
تعيين myInbox3 = myNameSpace.GetDefaultFolder(olFolderInbox).Folders("Servizio")

قم بتعيين myItems = myInbox.Items
قم بتعيين myItems2 = myInbox2.Items
قم بتعيين myItems3 = myInbox3.Items

قم بتعيين myDestFolder = myInbox.Folders("Da completare")

تعيين myItem = myItems.Find("[FLAGSTATUS] = 8")
بينما TypeName(myItem) <> "لا شيء"
myItem.Move myDestFolder
قم بتعيين myItem = myItems.FindNext
وند

تعيين myItem = myItems2.Find("[FLAGSTATUS] = 8")
بينما TypeName(myItem) <> "لا شيء"
myItem.Move myDestFolder
قم بتعيين myItem = myItems2.FindNext
وند

تعيين myItem = myItems3.Find("[FLAGSTATUS] = 8")
بينما TypeName(myItem) <> "لا شيء"
myItem.Move myDestFolder
قم بتعيين myItem = myItems3.FindNext
وند
نهاية الفرعية
ينقل عناصر بريد Outlook إلى مجلد فرعي عن طريق عنوان البريد الإلكتروني
الخيار صريح
نقل العناصر الفرعية العامة ()
' // أعلن عن المتغيرات الخاصة بك
    تعتيم علبة الوارد باسم Outlook.MAPIFolder
    تعتيم المجلد الفرعي مثل Outlook.MAPIFolder
    خافت olNs مثل Outlook.NameSpace
    تعتيم العنصر ككائن
    تعتيم العناصر مثل Outlook.Items
    خافت lngCount طالما
    على خطأ انتقل إلى MsgErr
'تعيين مرجع علبة الوارد
    تعيين olNs = Application.GetNamespace("MAPI")
    تعيين البريد الوارد = olNs.GetDefaultFolder(olFolderInbox)
    مجموعة العناصر = Inbox.Items
' // قم بالتمرير عبر العناصر الموجودة في المجلد للخلف
    بالنسبة لـ lngCount = Items.Count To 1 الخطوة -1
        تعيين العنصر = العناصر (lngCount)
        إذا كان Item.Class = olMail ثم
            حدد عنصر الحالة.SenderEmailAddress
' // Email_One
                الحالة "Email_One@email.com"
' // تعيين المجلد الفرعي لصندوق الوارد
                    تعيين المجلد الفرعي = Inbox.Folders("المجلد الأول")
                    تعيين العنصر = Items.Find("[SenderEmailAddress] = 'Email_One@email.com'")
                    إذا كان TypeName(Item) <> "لا شيء" إذن
' // ضع إشارة مقروء
                        Item.UnRead = خطأ
' // انقل عنصر البريد إلى المجلد الفرعي
                        العنصر.نقل المجلد الفرعي
                    إنهاء حالة
' // Email_Two
                الحالة "Email_Two@email.com"
' // تعيين المجلد الفرعي لصندوق الوارد
                    تعيين المجلد الفرعي = Inbox.Folders("المجلد الثاني")
                    تعيين العنصر = Items.Find("[SenderEmailAddress] = 'Email_Two@email.com'")
                    إذا كان TypeName(Item) <> "لا شيء" إذن
' // ضع إشارة مقروء
                        Item.UnRead = خطأ
' // انقل عنصر البريد إلى المجلد الفرعي
                        العنصر.نقل المجلد الفرعي
                    إنهاء حالة
            إنهاء اختر
        إنهاء حالة
    التالي lngCount
MsgErr_Exit:
    تعيين البريد الوارد = لا شيء
    تعيين المجلد الفرعي = لا شيء
    تعيين olNs = لا شيء
    تعيين العنصر = لا شيء
    ضبط العناصر = لا شيء
    خروج الفرعية
'// معلومات الخطأ
رسالة:
    MsgBox "حدث خطأ غير متوقع." _
         & vbCrLf & "رقم الخطأ:" & رقم الخطأ _
         & vbCrLf & "وصف الخطأ:" & Err.Description _
         , vbCritical، "خطأ!"
    استئناف MsgErr_Exit
نهاية الفرعية
أو لنقل كافة عناصر البريد الوارد إلى المجلد الفرعي
الخيار صريح
نقل العناصر الفرعية العامة ()
' // أعلن عن المتغيرات الخاصة بك
    تعتيم علبة الوارد باسم Outlook.MAPIFolder
    تعتيم المجلد الفرعي مثل Outlook.MAPIFolder
    خافت olNs مثل Outlook.NameSpace
    تعتيم العنصر ككائن
    خافت lngCount طالما
    تعتيم العناصر مثل Outlook.Items
    على خطأ انتقل إلى MsgErr
'تعيين مرجع علبة الوارد
    تعيين olNs = Application.GetNamespace("MAPI")
    تعيين البريد الوارد = olNs.GetDefaultFolder(olFolderInbox)
    مجموعة العناصر = Inbox.Items
' // قم بالتمرير عبر العناصر الموجودة في المجلد للخلف
    بالنسبة لـ lngCount = Items.Count To 1 الخطوة -1
        تعيين العنصر = العناصر (lngCount)
        تصحيح.طباعة العنصر.الموضوع
        إذا كان Item.Class = olMail ثم
' // تعيين المجلد الفرعي لصندوق الوارد
            تعيين المجلد الفرعي = Inbox.Folders("Temp")
' // ضع إشارة مقروء
            Item.UnRead = خطأ
' // انقل عنصر البريد إلى المجلد الفرعي
            العنصر.نقل المجلد الفرعي
        إنهاء حالة
    التالي lngCount
MsgErr_Exit:
    تعيين البريد الوارد = لا شيء
    تعيين المجلد الفرعي = لا شيء
    تعيين olNs = لا شيء
    تعيين العنصر = لا شيء
    خروج الفرعية
'// معلومات الخطأ
رسالة:
    MsgBox "حدث خطأ غير متوقع." _
         & vbCrLf & "رقم الخطأ:" & رقم الخطأ _
         & vbCrLf & "وصف الخطأ:" & Err.Description _
         , vbCritical، "خطأ!"
    استئناف MsgErr_Exit
نهاية الفرعية
·
منذ سنوات 3
·
0 يحب
·
الأصوات 0
·
0 تعليقات
·
جرب الكود المذكور أدناه:-
Sub MoveItems7TEST()

تعتيم myNameSpace مثل Outlook.NameSpace
تعتيم myInbox باسم Outlook.Folder
تعتيم myInbox2 باسم Outlook.Folder
تعتيم myInbox3 باسم Outlook.Folder

تعتيم myDestFolder باسم Outlook.Folder

تعتيم myItems كـ Outlook.Items
تعتيم myItems2 كـ Outlook.Items
تعتيم myItems3 كـ Outlook.Items

تعتيم myItem ككائن

تعيين myNameSpace = Application.GetNamespace("MAPI")
"بوستا في الوصول."
تعيين myInbox = myNameSpace.GetDefaultFolder(olFolderInbox)
"ستيف."
تعيين myInbox2 = myNameSpace.GetDefaultFolder(olFolderInbox).Folders("Stef")
"خدمة."
تعيين myInbox3 = myNameSpace.GetDefaultFolder(olFolderInbox).Folders("Servizio")

قم بتعيين myItems = myInbox.Items
قم بتعيين myItems2 = myInbox2.Items
قم بتعيين myItems3 = myInbox3.Items

قم بتعيين myDestFolder = myInbox.Folders("Da completare")

تعيين myItem = myItems.Find("[FLAGSTATUS] = 8")
بينما TypeName(myItem) <> "لا شيء"
myItem.Move myDestFolder
قم بتعيين myItem = myItems.FindNext
وند

تعيين myItem = myItems2.Find("[FLAGSTATUS] = 8")
بينما TypeName(myItem) <> "لا شيء"
myItem.Move myDestFolder
قم بتعيين myItem = myItems2.FindNext
وند

تعيين myItem = myItems3.Find("[FLAGSTATUS] = 8")
بينما TypeName(myItem) <> "لا شيء"
myItem.Move myDestFolder
قم بتعيين myItem = myItems3.FindNext
وند
نهاية الفرعية

مع التمني لهذه المعلومات أن تساعدك.
·
منذ سنوات 3
·
0 يحب
·
الأصوات 0
·
0 تعليقات
·
عرض مشاركة كاملة