Perşembe, 17 Şubat 2022
  1 Cevaplar
  5.7K Ziyaret
Bu yüzden bu mükemmel makaleyi kullandım Excel'deki hücre değerine göre otomatik olarak e-posta nasıl gönderilir? (extendoffice. Com) ve ihtiyacım olduğu gibi çalışmasını sağlamak için cevaplardan gelen cevapları bir araya getirdim, ancak çözemediğim son parça, birden fazla hücre için çalıştırmak için yaptığım şeyi nasıl çoğaltacağım. Kodu C4, C5 vb. gibi farklı değerlerle kopyalayıp/yapıştırıp yeniden düzenlemeye çalıştım ama her zaman hata alıyorum. C3'teki değer < 5 ise, çalışma kitabı kaydedildiğinde bir e-posta göndereceği yerde harika çalışmasını sağladım. Şimdi ihtiyacım olan şey, bu bir envanter sayfası için olduğundan, farklı değerlerde kontrol edilen birden fazla hücre değerine sahip olmak . Örneğin, yalnızca C3 < 5 ise bir e-posta gönderin. Yalnızca C4 <6 ise bir e-posta gönderin. C3 < 5 ise, C4 < 6 ve C5 < 3 ise bir e-posta gönderin. < ölçütüyle eşleşen tüm değerlerle birlikte yalnızca bir e-posta oluşturulsa iyi olurdu. Gerçek dünya terimlerinde (kodlama terimleri değil), elektronik tablo, teknisyenlerin öğeleri depodan kontrol edip çıkarabileceği bir yerdir. Yapmaya çalıştığım şey, birisi çalışma kitabını kaydettiğinde ve bir öğenin envanter düzeyi belirli bir değerin altına düştüğünde otomatik olarak bir e-posta gönderilmesidir, bu nedenle yakında bir sipariş verilmesi gerektiğini biliyorum. Şimdiye kadar bu benim kodum:

Bu Çalışma Kitabı
Private Sub Workbook_AfterSave(ByVal Başarı Olarak Boolean)
On Error Resume Next
Tamsayı Olarak Dim xI
Aralık olarak Dim xRg
xRg = Aralık ("Bilgi!C3") olarak ayarlayın
xI = Int(xRg.Değer)
xI < 5 ise
Mail_small_Text_Outlook'u arayın
Eğer son
End Sub

Modül1
Alt Mail_small_Text_Outlook()
xOutApp'i Nesne Olarak Karartın
Nesne Olarak xOutMail'i Karartın
Dize olarak xMailBody'yi karart
xOutApp = CreateObject("Outlook.Application") olarak ayarlayın
xOutMail = xOutApp.CreateItem(0) olarak ayarlayın
xMailBody = "Merhaba" & vbNewLine & vbNewLine & _
"Bu satır 1" & vbNewLine & _
Range("Bilgi!C3") & vbNewLine & _
"Bu 2. satır"
On Error Resume Next
xOutMail ile
.To = "E-posta Adresi"
.CC = ""
.BCC = ""
.Subject = "hücre değeri testi ile gönder"
.Gövde = xMailBody
.Göster veya .Gönder'i kullanın
İle bitmek
Hata Dönüsünde 0
xOutMail'i ayarla = Hiçbir şey
xOutApp'ı ayarla = Hiçbir şey
End Sub
2 yıl önce
·
#2473
Merhaba Jake,

İhtiyaçlarınıza göre lütfen bulun Bu Çalışma Kitabı içinde Microsoft Visual Basic Uygulamaları pencere.
  567959C0-D2E1-4819-85E7-FA20A3D06BE9.png

Çift tıklayın Bu Çalışma Kitabı ve aşağıdaki kodu kopyalayın:

'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


Lütfen xMailBody bölümünü ihtiyacınıza göre değiştirin.

Amanda
  • Sayfa:
  • 1
Bu gönderi için henüz cevap yok.