By Jake την Πέμπτη 17 Φεβρουαρίου 2022
Καταχωρήθηκε στο Excel
Απαντήσεις 1
συμπαθεί 0
Προβολές 5.8K
Ψηφοφορίες 0
Χρησιμοποίησα λοιπόν αυτό το εξαιρετικό άρθρο Πώς να στείλετε αυτόματα email με βάση την τιμή του κελιού στο Excel; (extendoffice.com) και συγκέντρωσα απαντήσεις από τις απαντήσεις για να λειτουργήσει όπως το χρειάζομαι, αλλά το τελευταίο κομμάτι που δεν μπορώ να καταλάβω είναι πώς να αντιγράψω αυτό που έκανα για να τρέξω για πολλά κελιά. Προσπάθησα να αντιγράψω/επικολλήσω και να αναδιατάξω τον κώδικα με διαφορετικές τιμές όπως C4, C5 κ.λπ. αλλά πάντα λαμβάνω σφάλματα. Λειτουργεί τέλεια σε σημείο που, εάν η τιμή στο C3 είναι < 5, θα στείλει ένα μήνυμα ηλεκτρονικού ταχυδρομείου όταν αποθηκευτεί το βιβλίο εργασίας. Αυτό που χρειάζομαι τώρα, δεδομένου ότι πρόκειται για ένα φύλλο αποθέματος, είναι να ελέγχονται πολλές άλλες τιμές κελιών σε διαφορετικές τιμές . Για παράδειγμα, εάν μόνο C3 < 5 στείλετε ένα email. Εάν μόνο το C4 είναι < 6 στείλτε ένα email. Εάν C3 < 5, C4 είναι < 6 και C5 < 3 στείλτε ένα email. Θα ήταν ωραίο να δημιουργείται μόνο ένα μήνυμα ηλεκτρονικού ταχυδρομείου κατά την αποθήκευση με όλες τις τιμές που ταιριάζουν με τα κριτήρια <. Σε πραγματικούς όρους (όχι κωδικοποιητικούς όρους), το υπολογιστικό φύλλο είναι ένα μέρος όπου οι τεχνικοί μπορούν να ελέγχουν και να βγάζουν αντικείμενα από την αποθήκευση. Αυτό που προσπαθώ να κάνω είναι να αποστέλλεται αυτόματα ένα μήνυμα ηλεκτρονικού ταχυδρομείου όταν κάποιος αποθηκεύει το βιβλίο εργασίας και το επίπεδο αποθέματος ενός αντικειμένου έχει πέσει κάτω από μια συγκεκριμένη τιμή, ώστε να γνωρίζω ότι μια παραγγελία πρέπει να υποβληθεί σύντομα. Μέχρι στιγμής αυτός είναι ο κωδικός μου:

Αυτό το βιβλίο εργασίας
Private Sub Workbook_AfterSave (ByVal Success As Boolean)
On Error Συνέχιση Επόμενη
Dim xI ως ακέραιος αριθμός
Dim xRg ως εύρος
Ορισμός xRg = Εύρος ("Πληροφορίες!C3")
xI = Int(xRg.Value)
Αν xI < 5 Τότε
Καλέστε το Mail_small_Text_Outlook
End If
Sub End

Ενότητα 1
Sub Mail_small_Text_Outlook()
Dim xOutApp ως αντικείμενο
Dim xOutMail ως αντικείμενο
Dim xMailBody ως συμβολοσειρά
Ορισμός xOutApp = CreateObject ("Outlook.Application")
Ορισμός xOutMail = xOutApp.CreateItem(0)
xMailBody = "Γεια σου" & vbNewLine & vbNewLine & _
"Αυτή είναι η γραμμή 1" & vbNewLine & _
Εύρος ("Information!C3") & vbNewLine & _
"Αυτή είναι η γραμμή 2"
On Error Συνέχιση Επόμενη
Με xOutMail
.To = "Διεύθυνση ηλεκτρονικού ταχυδρομείου"
.CC = ""
.BCC = ""
.Θέμα = "αποστολή με δοκιμή τιμής κελιού"
.Body = xMailBody
.Εμφάνιση ή χρήση .Αποστολή
Τέλος με
Στο σφάλμα GoTo 0
Ορισμός xOutMail = Τίποτα
Ρύθμιση xOutApp = Τίποτα
Sub End
Γεια Τζέικ,

Ανάλογα με τις ανάγκες σας, βρείτε Αυτό το βιβλίο εργασίας στο Εφαρμογές της Microsoft Visual Basic παράθυρο.
  567959C0-D2E1-4819-85E7-FA20A3D06BE9.png


Διπλό κλικ Αυτό το βιβλίο εργασίας και αντιγράψτε τον παρακάτω κώδικα:

'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 όπως χρειάζεστε.

Amanda
·
2 χρόνια πριν
·
0 αρέσει
·
0 ψήφοι
·
0 Σχόλια
·
Προβολή πλήρους ανάρτησης