الجمعة، 01 مارس 2019
  0 الردود
  3.2 ألف زيارة
0
الأصوات
فك
مرحبا،
أنا جديد على VBA. لقد كتبت رمزًا لإرسال بريد إلكتروني إذا كان هناك تغيير في قيمة الخلية في العمود F، ويعمل الرمز بشكل رائع. ولكنني أريد التأكد من حفظ المصنف قبل إرسال البريد الإلكتروني. يجب أن يتضمن نص نص البريد الإلكتروني قيمة الخلية المرجعية، وهي القيمة من العمود A لصف القيمة التي تم تغييرها. من فضلك لا تستخدم الرسائل، فهي لن تعمل مع المصنف. يحتوي المصنف على نموذج وسيقوم بتحميل قيمة الإدخال إلى الخلايا المعينة. الكود يعمل بشكل جيد مع النموذج. ولكن إذا دخل شخص ما إلى الورقة وقام بتحديث القيمة يدويًا، فسيتم إرسال البريد الإلكتروني إلى المستخدمين، وهو ما لا أريده حتى يتم حفظ الملف. الرجاء المساعدة! شكرا لك مقدما.

ورقة عمل فرعية خاصة تغيير (هدف ByVal كنطاق)
خافت s1، s2، s3، s4، s5، s6 كنطاق
مجموعة s1 = النطاق ("F1310:F1334")
مجموعة s2 = النطاق ("F1426:F1450")
مجموعة s3 = النطاق ("F1339:F1363")
مجموعة s4 = النطاق ("F1455:F1479")
مجموعة s5 = النطاق ("F1368:F1392")
مجموعة s6 = النطاق ("F1397:F1421")
على خطأ استئناف التالي
إذا كان Target.Cells.Count> 1 ثم اخرج من Sub
"ابحث عن القيمة التي تم تغييرها في العمود F
إذا كان Intersect(Target, Union(s1, s2, s3, s4, s5, s6)) لا شيء ثم قم بالخروج من Sub
إذا كان IsNumeric(Target.Value) وTarget.Value <> "" إذن
خافت xOutApp ككائن
تعتيم xOutMail ككائن
خافت xMailBody كسلسلة
خافت xMailText كسلسلة
تعيين xOutApp = CreateObject ("Outlook.Application")
قم بتعيين xOutMail = xOutApp.CreateItem (0)
"قيمة الفهرس من العمود A من الصف الذي تغيرت القيمة لتضمينه في نص البريد."
xMailText = Target.Offset(, -5).Value
xMailBody = "مرحبًا" & vbNewLine & vbNewLine & _
"تم استلام الفاتورة لـ " & xMailText & vbNewLine & vbNewLine & _
"شكرًا" & vbNewLine & vbNewLine & _
"السيد جي"
على خطأ استئناف التالي
مع xOutMail
. إلى = ""
.CC = ""
.BCC = ""
.Subject = "تم استلام الفاتورة"
. الجسم = xMailBody
.إرسال
انتهت ب
على خطأ GoTo 0
تعيين xOutMail = لا شيء
تعيين xOutApp = لا شيء
إنهاء حالة
نهاية الفرعية
لا توجد ردود لهذا المنصب حتى الآن.