الخميس، 17 فبراير 2022
  1 الردود
  2.5 ألف زيارة
0
الأصوات
فك
لذلك استخدمت هذه المقالة الممتازة كيفية إرسال بريد إلكتروني تلقائيًا بناءً على قيمة الخلية في Excel؟ (extendoffice. com) وألغيت معًا الإجابات من الردود لإنجاز هذا العمل كما أحتاجه ، لكن آخر قطعة لا أستطيع اكتشافها هي كيفية تكرار ما قمت به للتشغيل لخلايا متعددة. لقد حاولت نسخ / لصق وإعادة ترتيب الكود بقيم مختلفة مثل C4 و C5 وما إلى ذلك ، لكنني دائمًا ما أحصل على أخطاء. لقد عملت بشكل رائع حيث إذا كانت القيمة في C3 <5 ، فسوف ترسل بريدًا إلكترونيًا عند حفظ المصنف. ما أحتاجه الآن ، نظرًا لأن هذا يتعلق بورقة المخزون ، هو أن يكون لديك عدة قيم خلايا أخرى تم التحقق منها عند قيم مختلفة . على سبيل المثال ، إذا أرسل C3 <5 بريدًا إلكترونيًا فقط. إذا كانت C4 هي <6 ، فأرسل بريدًا إلكترونيًا. إذا كانت C3 <5 ، و C4 هي <6 و C5 <3 ، فأرسل بريدًا إلكترونيًا. سيكون من الجيد أن يتم إنشاء بريد إلكتروني واحد فقط عند حفظه مع جميع القيم التي تتطابق مع المعايير. ما أحاول القيام به هو إرسال بريد إلكتروني تلقائيًا عندما يقوم شخص ما بحفظ المصنف وانخفض مستوى المخزون لعنصر ما إلى ما دون قيمة معينة ، لذلك أعلم أنه يجب تقديم طلب قريبًا. حتى الآن هذا هو الكود الخاص بي:

ThisWorkbook
مصنف فرعي خاص_AfterSave (نجاح ByVal كـ منطقي)
على خطأ استئناف التالي
خافت xI كعدد صحيح
خافت xRg كمدى
قم بتعيين xRg = Range ("Information! C3")
xI = Int (xRg.Value)
إذا xI <5 ثم
اتصل بـ Mail_small_Text_Outlook
إنهاء حالة
نهاية الفرعية

الوحدة 1
Sub Mail_small_Text_Outlook الفرعي ()
خافت xOutApp ككائن
تعتيم xOutMail ككائن
خافت xMailBody كسلسلة
تعيين xOutApp = CreateObject ("Outlook.Application")
قم بتعيين xOutMail = xOutApp.CreateItem (0)
xMailBody = "مرحبًا" & vbNewLine & vbNewLine & _
"هذا هو السطر 1" & vbNewLine & _
النطاق ("Information! C3") & vbNewLine & _
"هذا هو السطر 2"
على خطأ استئناف التالي
مع xOutMail
.To = "عنوان البريد الإلكتروني"
.CC = ""
.BCC = ""
.Subject = "إرسال عن طريق اختبار قيمة الخلية"
. الجسم = xMailBody
.Display أو استخدام .Send
انتهت ب
على خطأ GoTo 0
تعيين xOutMail = لا شيء
تعيين xOutApp = لا شيء
نهاية الفرعية
منذ أشهر 11
·
#2473
0
الأصوات
فك
مرحبا جيك ،

وفقا لاحتياجاتك ، تجد ThisWorkbook في ال تطبيقات Microsoft Visual Basic نافذة.
  567959C0-D2E1-4819-85E7-FA20A3D06BE9.png

انقر نقرا مزدوجا فوق ThisWorkbook وانسخ الكود أدناه:

'Update by Extendoffice 2022/2/17
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

On Error Resume Next

Dim RgC3 As Range
Dim RgC4 As Range
Dim RgC5 As Range

Set RgC3 = Range("Information!C3")
Set RgC4 = Range("Information!C4")
Set RgC5 = Range("Information!C5")


If (IsNumeric(RgC3) And RgC3.Value < 5) And (IsNumeric(RgC4) And RgC4.Value < 6) And (IsNumeric(RgC5) And RgC5.Value < 3) Then
Call Mail_small_Text_Outlook

ElseIf IsNumeric(RgC3) And RgC3.Value < 5 Then
Call Mail_small_Text_Outlook

ElseIf IsNumeric(RgC4) And RgC4.Value < 6 Then
Call Mail_small_Text_Outlook

End If

End Sub


Sub Mail_small_Text_Outlook()


Dim xOutApp As Object
Dim xOutMail As Object
Dim xMailBody As String
Set xOutApp = CreateObject("Outlook.Application")
Set xOutMail = xOutApp.CreateItem(0)
xMailBody = "Hi there" & vbNewLine & vbNewLine & _
"This is line 1" & vbNewLine & _
Range("Information!C3") & vbNewLine & _
"This is line 2"
On Error Resume Next
With xOutMail
.To = "Email Address"
.CC = ""
.BCC = ""
.Subject = "send by cell value test"
.Body = xMailBody
.Display 'or use .Send
End With
On Error GoTo 0
Set xOutMail = Nothing
Set xOutApp = Nothing

End Sub


يرجى تغيير جزء xMailBody حسب حاجتك.

أماندا
  • الصفحة:
  • 1
لا توجد ردود لهذا المنصب حتى الآن.