Note: The other languages of the website are Google-translated. Back to English

Πώς να αλλάξετε την προεπιλεγμένη ώρα για καθυστέρηση παράδοσης στο Outlook;

Όταν ενεργοποιείτε την επιλογή καθυστέρησης παράδοσης (το Μην παραδώσετε πριν επιλογή στο ακόλουθο στιγμιότυπο οθόνης) για ένα email στο Outlook, η ώρα αποστολής έχει οριστεί στις 5:00 μ.μ. από προεπιλογή. Ας υποθέσουμε ότι εργάζεστε αργά το βράδυ και δεν θέλετε να ξέρουν οι άλλοι ότι εργάζεστε υπερωρίες. Πρέπει να ενεργοποιήσετε την επιλογή καθυστέρησης παράδοσης για τα email σας πριν τα στείλετε. Αφού ενεργοποιήσετε την επιλογή, πρέπει να αλλάξετε τον προεπιλεγμένο χρόνο αποστολής με μη αυτόματο τρόπο. Διαφορετικά, το email θα σταλεί μετά τις 5:00 την επόμενη μέρα. Υπάρχει κάποιος τρόπος να αλλάξετε αυτόν τον προεπιλεγμένο χρόνο παράδοσης;

Αυτό το σεμινάριο παρέχει έναν κωδικό VBA για να σας βοηθήσει να αλλάξετε την προεπιλεγμένη ώρα για την επιλογή καθυστέρησης παράδοσης στο Outlook.


Αλλάξτε την προεπιλεγμένη ώρα για καθυστέρηση παράδοσης στο Outlook με κωδικό VBA

Μπορείτε να εφαρμόσετε τον ακόλουθο κώδικα VBA για να αλλάξετε την προεπιλεγμένη ώρα για την επιλογή καθυστέρησης παράδοσης στο Outlook.

Στον ακόλουθο κώδικα VBA:

Μπορείτε να καθορίσετε δύο φορές: το καθυστέρηση παράδοσης και το επιλογή καθυστέρησης παράδοσης που ενεργοποιεί τον χρόνο.

Για παράδειγμα, ορίζετε τον χρόνο καθυστέρησης παράδοσης στις 07:30 π.μ. και ορίζετε την επιλογή καθυστέρησης παράδοσης να ενεργοποιείται αυτόματα μετά τις 5:30 μ.μ. Όταν στέλνετε ένα email κατά τις 07:30 π.μ. - 5:30 μ.μ., το email θα σταλεί απευθείας. Εάν ένα email σταλεί κατά τις 5:30 μ.μ. – 07:30 π.μ., θα έχει προγραμματιστεί να σταλεί μετά τις 07:30 π.μ. της επόμενης ημέρας.

Δοκιμάστε το σενάριο ως εξής.

1. Εκκινήστε το Outlook, πατήστε το άλλος + F11 ταυτόχρονα για να ανοίξετε το Microsoft Visual Basic για εφαρμογές παράθυρο.

2. Στο Microsoft Visual Basic για εφαρμογές παράθυρο, κάντε διπλό κλικ Project1 > Αντικείμενα του Microsoft Outlook > Αυτό το OutlookSession για να ανοίξετε το ThisOutlookSession (Κωδικός) παράθυρο και, στη συνέχεια, αντιγράψτε τον ακόλουθο κώδικα σε αυτό το παράθυρο κώδικα.

Κωδικός VBA: αλλαγή της προεπιλεγμένης ώρας για καθυστέρηση παράδοσης στο Outlook

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
'Updated by Extendoffice 20230410
  Const xDelayTime As String = "07:30:00"  'The delay delivery time of emails
  Const xCompareTime As String = "17:30:00" 'The time to enable the delay delivery option
  Dim xMail As Outlook.MailItem
  Dim xWeekday As Integer
  Dim xNowTime As String
  Dim xIsDelay As Boolean
  Dim xRet1 As Integer
  Dim xRet2 As Integer
  On Error GoTo xError
  If (Item.Class <> olMail) Then Exit Sub
  Set xMail = Item
  xWeekday = Weekday(Date, vbSunday)
  xNowTime = Format(Now, "hh:nn:ss")
  xIsDelay = False
  xRet1 = StrComp(xNowTime, xDelayTime)
  xRet2 = StrComp(xNowTime, xCompareTime)
  If xRet1 = xRet2 Then
    xIsDelay = True
  End If
  If (xRet1 = -1) And (xRet2 = -1) Then
    xMail.DeferredDeliveryTime = Date & " " & xDelayTime
  Else
    If ((xWeekday = vbFriday) And xIsDelay) Or (xWeekday = vbSaturday) Or (xWeekday = vbSunday) Then
      xMail.DeferredDeliveryTime = (Date + (vbSaturday - xWeekday + 2)) & " " & xDelayTime
    ElseIf xIsDelay Then
      xMail.DeferredDeliveryTime = (Date + 1) & " " & xDelayTime
    End If
  End If
Exit Sub
xError:
  MsgBox "ItemSend: " & Err.Description, , "Kutools for Outlook"
End Sub

:

1) Μπορείτε να αλλάξετε τον χρόνο καθυστέρησης και την ώρα για να ενεργοποιήσετε την επιλογή καθυστέρησης παράδοσης στις ακόλουθες γραμμές.
Const xDelayTime As String = "07:30:00"
Const xCompareTime As String = "17:30:00"
2) Κατά την αποστολή ενός email τα Σαββατοκύριακα, θα προγραμματιστεί να σταλεί μετά τις 07:30 π.μ. της Δευτέρας.

3. Αποθηκεύστε τον κωδικό και πατήστε το άλλος + Q πλήκτρα για να κλείσετε το Microsoft Visual Basic για εφαρμογές παράθυρο.

Από εδώ και στο εξής, όταν στέλνετε ένα email κατά τις 07:30 π.μ. - 5:30 μ.μ., το email θα αποστέλλεται απευθείας. Εάν ένα email σταλεί κατά τις 5:30 μ.μ. – 07:30 π.μ., θα έχει προγραμματιστεί να σταλεί μετά τις 07:30 π.μ. της επόμενης εργάσιμης ημέρας.


Σχετικά Άρθρα

Αλλαγή της προεπιλεγμένης ώρας υπενθύμισης ολοήμερων συμβάντων στο Outlook
Κανονικά, ο προεπιλεγμένος χρόνος υπενθύμισης του ολοήμερου συμβάντος είναι 18 ώρες στο Outlook 2007/2010 και 0.5 ημέρες στο Outlook 2013. Μερικές φορές, η προεπιλεγμένη ώρα υπενθύμισης του ολοήμερου συμβάντος ενδέχεται να μην συμφωνεί με το πρόγραμμα εργασίας σας. Εδώ θα παρουσιάσουμε τον τρόπο αλλαγής της προεπιλεγμένης ώρας υπενθύμισης των ολοήμερων συμβάντων στο Microsoft Outlook.

Αλλάξτε τον προεπιλεγμένο χρόνο παρακολούθησης στο Outlook
Όπως γνωρίζουμε, όταν προσθέτουμε μια υπενθύμιση παρακολούθησης για ένα email στο Outlook, ο προεπιλεγμένος χρόνος παρακολούθησης είναι 4:30 μ.μ. (ή άλλη ώρα ανάλογα με τις ώρες εργασίας σας). Ωστόσο, μπορεί να θέλετε να αλλάξετε τον προεπιλεγμένο χρόνο παρακολούθησης και να το αφήσετε να σας υπενθυμίσει στην αρχή των ωρών εργασίας, όπως 9:00 π.μ. Σε αυτό το άρθρο, θα σας δείξω πώς να αλλάξετε τον προεπιλεγμένο χρόνο παρακολούθησης στο Outlook.

Αλλαγή της προεπιλεγμένης θέσης αρχείου στο Outlook
Από προεπιλογή, το Outlook έχει προεπιλεγμένη θέση για τα αρχεία αρχειοθέτησης. Εκτός από την προεπιλεγμένη τοποθεσία, μπορείτε να ορίσετε τη δική σας θέση αρχειοθέτησης για τα αρχεία αρχειοθέτησής σας. Σε αυτό το σεμινάριο, θα σας δείξουμε πώς μπορείτε να αλλάξετε λεπτομερώς την προεπιλεγμένη θέση αρχειοθέτησης στο Outlook.

Αλλαγή προεπιλεγμένης τοποθεσίας αποθήκευσης συνημμένου στο Outlook
Έχετε βαρεθεί να βρίσκετε τη θέση συνημμένου που έχετε καθορίσει κάθε φορά κατά την εκκίνηση του Outlook; Σε αυτό το σεμινάριο, θα σας δείξουμε πώς να αλλάξετε την προεπιλεγμένη θέση συνημμένου. Μετά από αυτό, ο καθορισμένος φάκελος αποθήκευσης συνημμένων θα ανοίγει αυτόματα κάθε φορά που αποθηκεύετε τα συνημμένα ακόμα κι αν κάνετε επανεκκίνηση του Outlook.

Αλλάξτε την προεπιλογή του ολοήμερου συμβάντος σε Busy στο Outlook
Από προεπιλογή, το Outlook ορίζει την κατάσταση των συναντήσεων και των συσκέψεων σε "Απασχολημένο", αλλά τα ολοήμερα συμβάντα σε "Δωρεάν" (δείτε στιγμιότυπο οθόνης παρακάτω). Πρέπει να αλλάζετε με μη αυτόματο τρόπο την κατάσταση Εμφάνιση ως σε Απασχολημένος κάθε φορά που δημιουργείτε ένα ολοήμερο συμβάν. Για να αλλάξετε την προεπιλεγμένη εμφάνιση ως κατάσταση των ολοήμερων συμβάντων σε Απασχολημένος, το άρθρο σάς παρέχει δύο μεθόδους.


Kutools for Outlook - Φέρνει 100 προηγμένες δυνατότητες στο Outlook και κάνει τη δουλειά πολύ πιο εύκολη!

  • Αυτόματο CC / BCC με κανόνες κατά την αποστολή email · Αυτόματη προώθηση Πολλαπλά μηνύματα ηλεκτρονικού ταχυδρομείου κατά παραγγελία. Αυτόματη απάντηση χωρίς διακομιστή ανταλλαγής και περισσότερες αυτόματες δυνατότητες ...
  • Προειδοποίηση BCC - εμφάνιση μηνύματος όταν προσπαθείτε να απαντήσετε σε όλα εάν η διεύθυνση αλληλογραφίας σας βρίσκεται στη λίστα BCC; Υπενθύμιση όταν λείπουν συνημμένακαι περισσότερες λειτουργίες υπενθύμισης ...
  • Απάντηση (Όλα) Με όλα τα συνημμένα στη συνομιλία μέσω ταχυδρομείου; Απάντηση σε πολλά email σε δευτερόλεπτα; Αυτόματη προσθήκη χαιρετισμού κατά την απάντηση Προσθήκη ημερομηνίας στο θέμα ...
  • Εργαλεία συνημμένων: Διαχείριση όλων των συνημμένων σε όλα τα μηνύματα, Αυτόματη απόσπαση, Συμπίεση όλων, Μετονομασία όλων, Αποθήκευση όλων ... Γρήγορη αναφορά, Καταμέτρηση επιλεγμένων μηνυμάτων...
  • Ισχυρά ανεπιθύμητα email κατά παραγγελία? Κατάργηση διπλότυπων μηνυμάτων και επαφών... Σας επιτρέπουν να κάνετε πιο έξυπνα, πιο γρήγορα και καλύτερα στο Outlook.
shot kutools outlook kutools καρτέλα 1180x121
shot kutools outlook kutools συν καρτέλα 1180x121
 
Σχόλια (37)
Δεν υπάρχουν ακόμη βαθμολογίες. Γίνε ο πρώτος που θα αξιολογήσετε!
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Αυτό δεν λειτούργησε για μένα
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια σου David Koenig,
Λάβατε κάποιο μήνυμα σφάλματος; Πρέπει να μάθω πιο συγκεκριμένα για το πρόβλημά σας, όπως η έκδοση του Outlook. Συγγνώμη για την αναστάτωση.
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Είναι 01:19 (UTC+1) και ακολούθησα τα βήματά σου, αλλά μετά όταν δοκίμασα από την επαγγελματική διεύθυνση ηλεκτρονικού ταχυδρομείου μου στην ιδιωτική μου, έκανα κλικ στο "Νέο email", έγραψα ένα δοκιμαστικό e-mail και έκανα κλικ στην αποστολή και έστειλε το e-mail αμέσως.
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια σου Lounge,

Ο κωδικός έχει ενημερωθεί, δοκιμάστε τον. Ευχαριστούμε για την ανταπόκρισή σας.
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
'Updated by Extendoffice 20230117
  Const xDelayTime As String = "07:30:00"  'The delay delivery time of emails
  Const xCompareTime As String = "17:30:00" 'The time to enable the delay delivery option
  
  Dim xMail As Outlook.MailItem
  Dim xWeekday As Integer
  Dim xNowTime As String
  Dim xIsDelay As Boolean
  On Error GoTo xError
  If (Item.Class <> olMail) Then Exit Sub
  Set xMail = Item
  xWeekday = Weekday(Date, vbSunday)
  xNowTime = Format(Now, "hh:nn:ss")
  xIsDelay = False
  If StrComp(xNowTime, xDelayTime) = StrComp(xNowTime, xCompareTime) Then
    xIsDelay = True
  End If
  If ((xWeekday = vbFriday) And xIsDelay) Or (xWeekday = vbSaturday) Or (xWeekday = vbSunday) Then
    xMail.DeferredDeliveryTime = (Date + (vbSaturday - xWeekday + 2)) & " " & xDelayTime
  ElseIf xIsDelay Then
    xMail.DeferredDeliveryTime = (Date + 1) & " " & xDelayTime
  End If
Exit Sub
xError:
  MsgBox "ItemSend: " & Err.Description, , "Kutools for Outlook"
End Sub
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Ευχαριστώ πολύ, τι θα γινόταν αν θέλετε να στείλετε αμέσως ένα email το Σαββατοκύριακο, πώς θα το κάνατε;
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια σου Isabelle,
Δεν καταλαβαίνω καλά τι εννοείς. Εννοείτε να καθυστερήσετε όλα τα email και να τα στείλετε μαζί το Σαββατοκύριακο;
Χρειάζομαι περισσότερες πληροφορίες σχετικά με την ερώτησή σας. Συγγνώμη για την ταλαιπωρία.
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Αυτό είναι πραγματικά χρήσιμο

Εάν θέλετε να το απενεργοποιήσετε μόνο για ένα μήνυμα ηλεκτρονικού ταχυδρομείου (δηλ. παρακάμψτε την προεπιλογή και να στείλετε αυτό το ένα email εκτός ωρών εργασίας), πώς θα το κάνατε;
Προσπάθησα να μπω στο "Εξερχόμενα" και να αφαιρέσω την καθυστέρηση παράδοσης - αλλά όταν κάνω κλικ στην αποστολή, απλώς επιστρέφει στα "Εξερχόμενα" με την καθυστέρηση παράδοσης ενεργοποιημένη.

Εκτιμήστε κάθε συμβουλή!
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια Λιάμ,
Δοκιμάστε τον ακόλουθο κώδικα VBA.
Εάν πρέπει να απενεργοποιήσετε την καθυστέρηση παράδοσης για ένα email, μετά την αποστολή του, μεταβείτε στα Εξερχόμενα, κάντε διπλό κλικ στο email για να το ανοίξετε. Κάντε κλικ Επιλογές > Παράδοση καθυστέρησης > Αποεπιλέξτε το Μην παραδώσετε πριν πλαίσιο ελέγχου > κλείστε το Ιδιοκτησίες πλαίσιο διαλόγου > Κάντε κλικ Αποστολή.
https://www.extendoffice.com/images/stories/comments/comment-picture-zxm/delay-delivery.png

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
'Updated by Extendoffice 20221124
  Const xDelayTime As String = "07:30:00" 'The delay delivery time of emails
  Const xCompareTime As String = "17:30:00" 'The time to enable the delay delivery option
  
  Dim xMail As Outlook.MailItem
  Dim xWeekday As Integer
  Dim xNowTime As String
  Dim xIsDelay As Boolean
  On Error GoTo xError
  If (Item.Class <> olMail) Then Exit Sub
  Set xMail = Item
  If xMail.Submitted = True Then Exit Sub
  xWeekday = Weekday(Date, vbSunday)
  xNowTime = Format(Now, "hh:nn:ss")
  xIsDelay = (StrComp(xNowTime, xCompareTime) > 0)
  If ((xWeekday = vbFriday) And xIsDelay) Or (xWeekday = vbSaturday) Or (xWeekday = vbSunday) Then
    xMail.DeferredDeliveryTime = (Date + (vbSaturday - xWeekday + 2)) & " " & xDelayTime
  ElseIf xIsDelay Then
    xMail.DeferredDeliveryTime = (Date + 1) & " " & xDelayTime
  End If
Exit Sub
xError:
  MsgBox "ItemSend: " & Err.Description, , "Kutools for Outlook"
End Sub
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Μπορεί ο γενικός προεπιλεγμένος χρόνος καθυστέρησης των 5:00 μ.μ. να αλλάξει σε (ας πούμε) 10:00 π.μ.; Έχω μια κατάσταση εργασίας που απαιτεί να δημιουργώ ένα καθημερινό email νωρίς το πρωί, αλλά να μην το στέλνω μέχρι τις 10 π.μ. - αυτή είναι γενικά η μόνη φορά που χρειάζεται να καθυστερήσω μια αποστολή, επομένως η προεπιλογή μου για τις 10:00 π.μ. θα εξοικονομούσε λίγο από την επεξεργασία κάθε πρωί.
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια σου Μιχάλη,
Ο προεπιλεγμένος χρόνος καθυστέρησης μπορεί να αλλάξει από τις 5:00 μ.μ. σε 10:00 π.μ. όταν κάνετε κλικ στο κουμπί Αποστολή, αλλά λειτουργεί για όλα τα μηνύματα ηλεκτρονικού ταχυδρομείου που στέλνετε νωρίς το πρωί.
Πρέπει να επιβεβαιώσω ότι εάν θέλετε να ενεργοποιήσετε αυτήν την καθυστερημένη παράδοση μόνο για ένα συγκεκριμένο email; Αν ναι, ο κωδικός δεν θα λειτουργήσει για τις ανάγκες σας.
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Θα ήθελα η προεπιλεγμένη ώρα αποστολής να είναι πάντα 10:00 π.μ. και όχι 5:00. Αν χρειαστεί να αλλάξω τον χρόνο παράδοσης για άλλο email, θα το κάνω με χαρά, αλλά για την καθημερινή μου εργασία, προτιμάται η προεπιλογή 10:00 π.μ.
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια σου Μιχάλη,
Επειδή η Μην παραδίδετε πριν Η επιλογή είναι ενεργοποιημένη όταν κάνετε κλικ στο κουμπί Αποστολή με τον κωδικό VBA, πρέπει να επιβεβαιώσω τα ακόλουθα δύο ζητήματα. Αυτές οι πληροφορίες πρέπει να λαμβάνονται υπόψη στον κώδικα. Συγγνώμη για την ταλαιπωρία.
1. Θέλετε να καθυστερήσετε την αποστολή email μόνο νωρίς το πρωί (πριν τις 10:00 π.μ.); Υπάρχει συγκεκριμένο χρονικό εύρος; Όπως 7:00 - 9:59.
2. Τι γίνεται αν στέλνετε email μετά τις 10:00; Αυτά τα email αποστέλλονται απευθείας χωρίς καθυστέρηση;
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια Μιχαήλ.

google για το πρόσθετο SetDeliveryTime για το Outlook (δωρεάν).
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Τέλειος! Αυτό ακριβώς ήθελα - αυτό το πρόσθετο αλλάζει την προεπιλεγμένη ώρα "Να μην παραδοθεί πριν" από τις 5:00 μ.μ. σε ό,τι θέλει κάποιος να καθορίσει. Ευχαριστώ πολύ, Βίκτορ, και πολλές ευχαριστίες για την επιμέλειά σου που ακολούθησε το αίτημά μου, Κρίσταλ.
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
ΜΕΓΑΛΟΣ!!! ΕΥΧΑΡΙΣΤΩ !
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Εφάρμοσα το σενάριο VBA και λειτούργησε τέλεια. Πώς μπορώ να το αναιρέσω; Προσπαθώ να απενεργοποιήσω την καθυστερημένη αποστολή πίσω στο μη επιλεγμένο ως προεπιλογή.
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Το έχω χρησιμοποιήσει και λειτουργεί εξαιρετικά, ωστόσο πρέπει να αφαιρέσω και να απενεργοποιήσω το πλαίσιο ελέγχου αυτόματης καθυστερημένης παράδοσης. Μπορείτε παρακαλώ να βοηθήσετε;
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Το έχω εφαρμόσει και λειτουργεί. Ωστόσο, πώς μπορώ να κάνω πίσω τον κώδικα VBA για να μην είναι ενεργοποιημένη αυτή η δυνατότητα;
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια σου Τράβις,
Εάν θέλετε απλώς να απενεργοποιήσετε τον κώδικα και να τον χρειάζεστε στο μέλλον, σχολιάστε ολόκληρο τον κώδικα στο πρόγραμμα επεξεργασίας VBA.
1. Ανοίξτε τον Επεξεργαστή VBA (πατήστε το άλλος + F11 κλειδιά).
2. Κάντε δεξί κλικ οπουδήποτε στην κορδέλα.
3. Επιλέξτε το «Αλλαγές” Γραμμή εργαλείων για να προσθέσετε τη γραμμή εργαλείων Επεξεργασία στην κορδέλα.
https://www.extendoffice.com/images/stories/comments/comment-picture-zxm/vba1.png
4. Επιλέξτε ολόκληρο τον κώδικα VBA και κάντε κλικ στο Αποκλεισμός σχολίων κουμπί.
Note: Εάν θέλετε να ενεργοποιήσετε ξανά τον κωδικό, απλώς επιλέξτε ολόκληρο τον κωδικό και κάντε κλικ στο Αποκλεισμός σχολίου κουμπί.
https://www.extendoffice.com/images/stories/comments/comment-picture-zxm/vba2.png
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια, αυτό δεν λειτουργεί για μένα. Είμαι στην έκδοση 2210 του Outlook. Έχω και μια άλλη λειτουργία στο ThisOutlookSession. Θα μπορούσατε να με βοηθήσετε να δω τι μπορεί να συμβαίνει;
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια Brian,
Εάν έχετε ήδη μια συνάρτηση στο ThisOutlookSession που έχει το ίδιο όνομα με αυτόν τον κώδικα VBA, οι δύο συναρτήσεις θα έρθουν σε διένεξη.
Εάν αυτοί οι δύο κωδικοί VBA έχουν διαφορετικά ονόματα, μπορείτε να αφαιρέσετε την ακόλουθη γραμμή από τον κώδικα και να ελέγξετε εάν εμφανίζεται σφάλμα όταν κάνετε κλικ στο κουμπί Αποστολή. Τότε πες μου το σφάλμα που έχεις.
On Error GoTo xError
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Αυτή είναι μια αρκετά προηγμένη έκδοση του Outlook, Brian! 😄
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Κατέληξα να διαγράψω τον άλλο μου κωδικό και ακόμα δεν μπορώ να τον κάνω να λειτουργήσει. Δεν εμφανίζεται σφάλμα όταν πατάω αποστολή. Σχολίασα τον κώδικα που γράψατε πιο πάνω
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια Brian,

Ελέγξτε εάν οι επιλογές ενεργοποίησης μακροεντολών είναι ενεργοποιημένες στο Outlook σας.
https://www.extendoffice.com/images/stories/comments/comment-picture-zxm/enable_macros.png
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Είσαι η κατσίκα! Αυτό ήταν :)
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Είναι υπέροχο.

Αυτό είναι ένα μακρύ στιγμιότυπο - αλλά έχω λογαριασμούς εργασίας και προσωπικούς στο Outlook. Υπάρχει τρόπος να το ορίσετε μόνο για συγκεκριμένους λογαριασμούς;
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια σου Ann,
Η ακόλουθη δέσμη ενεργειών VBA μπορεί να βοηθήσει. Δοκιμάστε το.
Σε αυτή τη γραμμή: xAccount = "Ο λογαριασμός email σας", αντικαταστήστε το κείμενο "Εσείς λογαριασμός email"με τον δικό σας λογαριασμό. Για πολλούς λογαριασμούς, χρησιμοποιήστε ένα ερωτηματικό ";«για να τους χωρίσουμε.

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
'Updated by Extendoffice 20230117
  Const xDelayTime As String = "07:30:00" 'The delay delivery time of emails
  Const xCompareTime As String = "17:30:00" 'The time to enable the delay delivery option
  
  Dim xMail As Outlook.MailItem
  Dim xWeekday As Integer
  Dim xNowTime As String
  Dim xIsDelay As Boolean
  Dim xSenderAddress As String
  Dim xAccount As String
  On Error GoTo xError
  If (Item.Class <> olMail) Then Exit Sub
  Set xMail = Item
  xSenderAddress = ""
  xSenderAddress = xMail.SendUsingAccount.SmtpAddress
  xAccount = "Your email account"  'Specify your email account here and use ; to separate different accounts
  If VBA.InStr(xAccount, xSenderAddress) = 0 Then Exit Sub
  xWeekday = Weekday(Date, vbSunday)
  xNowTime = Format(Now, "hh:nn:ss")
  xIsDelay = False
  If StrComp(xNowTime, xDelayTime) = StrComp(xNowTime, xCompareTime) Then
    xIsDelay = True
  End If
  Debug.Print xIsDelay
  If ((xWeekday = vbFriday) And xIsDelay) Or (xWeekday = vbSaturday) Or (xWeekday = vbSunday) Then
    xMail.DeferredDeliveryTime = (Date + (vbSaturday - xWeekday + 2)) & " " & xDelayTime
  ElseIf xIsDelay Then
    xMail.DeferredDeliveryTime = (Date + 1) & " " & xDelayTime
  End If
Exit Sub
xError:
  MsgBox "ItemSend: " & Err.Description, , "Kutools for Outlook"
End Sub
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια σου Crystal, ακολούθησα τις οδηγίες σου και ενεργοποίησα τις μακροεντολές, αλλά τα email εξακολουθούν να αποστέλλονται μόλις κάνω κλικ στο "Αποστολή". Έχω την έκδοση 2101 του Outlook (Build 13628.20274).
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια σου Crystal, ακολούθησα τις οδηγίες σου και ενεργοποίησα τις μακροεντολές, αλλά τα email εξακολουθούν να αποστέλλονται μόλις κάνω κλικ στο "Αποστολή".

Έχω την έκδοση 2101 του Outlook (Build 13628.20274).

1. Δεν τροποποίησα καμία μεταβλητή στον κώδικα, επομένως αποθηκεύεται όπως έχετε δώσει οδηγίες για το "ThisOutlookSession".
2. Είναι ο μόνος κωδικός στο "ThisOutlookSession".
3. Η τρέχουσα ώρα είναι 3:19 π.μ. ανατολική ώρα, επομένως θα περίμενα ότι τα μηνύματα ηλεκτρονικού ταχυδρομείου θα καθυστερήσουν κάνοντας κλικ στο "Αποστολή", καθώς επιχειρώ να στείλω ένα μήνυμα ηλεκτρονικού ταχυδρομείου κατά τη χρονική περίοδο 5:30 μ.μ. - 07:30 π.μ.
4. Επιβεβαίωσα ότι οι μακροεντολές είναι ενεργοποιημένες.

Υπάρχει κάτι άλλο που μπορείτε να προτείνετε που θα μπορούσε να προκαλέσει τη μη λειτουργία αυτής της μακροεντολής; Σας ευχαριστώ

Από το σεμινάριο: "Από τώρα και στο εξής, όταν στέλνετε ένα email κατά τις 07:30 π.μ. - 5:30 μ.μ., το email θα αποστέλλεται απευθείας. Εάν ένα email σταλεί κατά τις 5:30 μ.μ. έχει προγραμματιστεί να αποσταλεί μετά τις 07:30 π.μ. της επόμενης εργάσιμης ημέρας."
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια σου Crystal,
Διόρθωσα το πρόβλημα κλείνοντας την εφαρμογή του Outlook και ανοίγοντάς την ξανά μετά την αποθήκευση του κώδικα VBA. Σε ευχαριστώ για αυτό!
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια σου Crystal, το θέμα επέστρεψε. Ανεξάρτητα από την ώρα της ημέρας, τα email στέλνονται μόλις κάνω κλικ στο "Αποστολή". Παρακαλώ ενημερώστε με οποιαδήποτε συμβουλή. Σας ευχαριστώ
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια σου Angela,

Το πρόβλημα αναπαράχθηκε στην περίπτωσή μου και έχουμε ενημερώσει τον κώδικα. Δοκιμάστε το. Σας ευχαριστούμε για το σχόλιό σας.
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
'Updated by Extendoffice 20230117
  Const xDelayTime As String = "07:30:00"  'The delay delivery time of emails
  Const xCompareTime As String = "17:30:00" 'The time to enable the delay delivery option
  
  Dim xMail As Outlook.MailItem
  Dim xWeekday As Integer
  Dim xNowTime As String
  Dim xIsDelay As Boolean
  On Error GoTo xError
  If (Item.Class <> olMail) Then Exit Sub
  Set xMail = Item
  xWeekday = Weekday(Date, vbSunday)
  xNowTime = Format(Now, "hh:nn:ss")
  xIsDelay = False
  If StrComp(xNowTime, xDelayTime) = StrComp(xNowTime, xCompareTime) Then
    xIsDelay = True
  End If
  If ((xWeekday = vbFriday) And xIsDelay) Or (xWeekday = vbSaturday) Or (xWeekday = vbSunday) Then
    xMail.DeferredDeliveryTime = (Date + (vbSaturday - xWeekday + 2)) & " " & xDelayTime
  ElseIf xIsDelay Then
    xMail.DeferredDeliveryTime = (Date + 1) & " " & xDelayTime
  End If
Exit Sub
xError:
  MsgBox "ItemSend: " & Err.Description, , "Kutools for Outlook"
End Sub
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Ευχαριστώ για αυτήν τη μακροεντολή. Συχνά εργάζομαι αργά το βράδυ ή νωρίς το πρωί, αλλά δεν θέλω να αποστέλλονται email στους συναδέλφους μου εκτός των κανονικών ωρών εργασίας (για μένα, 08:00 έως 17:45, το οποίο έχω τροποποιήσει στη μακροεντολή ο ίδιος ).

Υπάρχει τρόπος να προσθέσετε μια πρόσθετη ρήτρα στη μακροεντολή για την αποστολή email, παρακαλώ; Επί του παρόντος, εάν εργάζομαι νωρίς το πρωί μια καθημερινή (ας πούμε 06:00, πριν ξεκινήσει επίσημα η εργάσιμη ημέρα στις 08:00), τότε η μακροεντολή θα καθυστερήσει την αποστολή μέχρι τις 08:00 την επόμενη εργάσιμη ημέρα. Θα προτιμούσα το email να σταλεί στις 08:00 την τρέχουσα εργάσιμη ημέρα. Δοκίμασα τη μακροεντολή σας την Πέμπτη το πρωί στις 07:54 και η αποστολή έχει καθυστερήσει μέχρι τις 08:00 της Παρασκευής, ενώ θα ήθελα να σταλεί την Πέμπτη στις 08:00.

Τα email που αποστέλλονται μετά το τέλος της εργάσιμης ημέρας θα πρέπει να σταλούν στην αρχή της επόμενης εργάσιμης ημέρας, όπως έχετε γράψει. Τυχόν email που αποστέλλονται ανά πάσα στιγμή το Σάββατο ή την Κυριακή θα πρέπει να αποστέλλονται στην αρχή της επόμενης εργάσιμης ημέρας, και πάλι όπως έχετε γράψει.

Πάει καιρός από τότε που έχω γράψει κάτι ουσιαστικό στο VBA, οπότε γυρίζω το κεφάλι μου προς τα έξω προσπαθώντας να βρω τη λύση, χωρίς επιτυχία.
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια Ντομ,

Λυπάμαι που σας απαντώ τόσο αργά. Ο παρακάτω κώδικας VBA μπορεί να βοηθήσει. Δοκιμάστε το.
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
'Updated by Extendoffice 20230410
  Const xDelayTime As String = "08:00:00"  'The delay delivery time of emails
  Const xCompareTime As String = "17:45:00" 'The time to enable the delay delivery option
  Dim xMail As Outlook.MailItem
  Dim xWeekday As Integer
  Dim xNowTime As String
  Dim xIsDelay As Boolean
  Dim xRet1 As Integer
  Dim xRet2 As Integer
  Dim xDelayInterval As Integer
  On Error GoTo xError
  If (Item.Class <> olMail) Then Exit Sub
  Set xMail = Item
  xWeekday = Weekday(Date, vbSunday)
  xNowTime = Format(Now, "hh:nn:ss")
  xIsDelay = False
  xRet1 = StrComp(xNowTime, xDelayTime)
  xRet2 = StrComp(xNowTime, xCompareTime)
  If xRet1 = xRet2 Then
    xIsDelay = True
  End If
  If (xRet1 = -1) And (xRet2 = -1) Then
    xMail.DeferredDeliveryTime = Date & " " & xDelayTime
  Else
    If ((xWeekday = vbFriday) And xIsDelay) Or (xWeekday = vbSaturday) Or (xWeekday = vbSunday) Then
      xMail.DeferredDeliveryTime = (Date + (vbSaturday - xWeekday + 2)) & " " & xDelayTime
    ElseIf xIsDelay Then
      xMail.DeferredDeliveryTime = (Date + 1) & " " & xDelayTime
    End If
  End If
Exit Sub
xError:
  MsgBox "ItemSend: " & Err.Description, , "Kutools for Outlook"
End Sub
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Αυτό είναι ένα πολύ χρήσιμο κομμάτι κώδικα, γιατί με αποτρέπει από το να ενοχλώ τους ανθρώπους εκτός των ωρών γραφείου.
Ωστόσο, μερικές φορές χρειάζεται να στείλω ένα email εκτός των κανονικών ωρών και είναι ενοχλητικό να σχολιάζω τον κώδικα VBA κάθε φορά.
Η πρότασή μου είναι ότι εάν η σημαία "Σημασία" οριστεί σε υψηλή, τότε το mail θα σταλεί αμέσως και δεν θα καθυστερήσει. Θα ήταν δυνατόν να προσθέσετε μια τέτοια εξαίρεση στον κώδικα; (Ακόμα διατηρείται ο υπάρχων κωδικός, συμπεριλαμβανομένης της γραμμής με τη διεύθυνση xSenderAddress).
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
Γεια σου Bernard,

Ο παρακάτω κώδικας VBA βοηθά στην εξαίρεση των email με σημαία υψηλής σημασίας. Δοκιμάστε το.
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
'Updated by Extendoffice 20230410
  Const xDelayTime As String = "07:30:00"  'The delay delivery time of emails
  Const xCompareTime As String = "17:30:00" 'The time to enable the delay delivery option
  Dim xMail As Outlook.MailItem
  Dim xWeekday As Integer
  Dim xNowTime As String
  Dim xIsDelay As Boolean
  Dim xRet1 As Integer
  Dim xRet2 As Integer
  On Error GoTo xError
  If (Item.Class <> olMail) Then Exit Sub
  Set xMail = Item
  If xMail.Importance = olImportanceHigh Then Exit Sub 'Exclude emails with a high importance flag
  xWeekday = Weekday(Date, vbSunday)
  xNowTime = Format(Now, "hh:nn:ss")
  xIsDelay = False
  xRet1 = StrComp(xNowTime, xDelayTime)
  xRet2 = StrComp(xNowTime, xCompareTime)
  If xRet1 = xRet2 Then
    xIsDelay = True
  End If
  If (xRet1 = -1) And (xRet2 = -1) Then
    xMail.DeferredDeliveryTime = Date & " " & xDelayTime
  Else
    If ((xWeekday = vbFriday) And xIsDelay) Or (xWeekday = vbSaturday) Or (xWeekday = vbSunday) Then
      xMail.DeferredDeliveryTime = (Date + (vbSaturday - xWeekday + 2)) & " " & xDelayTime
    ElseIf xIsDelay Then
      xMail.DeferredDeliveryTime = (Date + 1) & " " & xDelayTime
    End If
  End If
Exit Sub
xError:
  MsgBox "ItemSend: " & Err.Description, , "Kutools for Outlook"
End Sub
Αυτό το σχόλιο ελαχιστοποιήθηκε από τον συντονιστή του ιστότοπου
I found that when you send an email on Sunday it is push to a week out as xMail.DeferredDeliveryTime = (Date + (vbSaturday - xWeekday + 2)) & " " & xDelayTime ends up with 8 days in the future instead of the expected one. As 7 (vbSaturday) - 1 (xWeekday on Sunday) + 2 is 8. This is my fix:
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
'Updated by EWP 20230518
  Const xDelayTime As String = "07:30:00"  'The delay delivery time of emails
  Const xCompareTime As String = "17:30:00" 'The time to enable the delay delivery option
  Dim xMail As Outlook.MailItem
  Dim xWeekday As Integer
  Dim xNowTime As String
  Dim xIsDelay As Boolean
  Dim xRet1 As Integer
  Dim xRet2 As Integer
  On Error GoTo xError
  If (Item.Class <> olMail) Then Exit Sub
  Set xMail = Item
  xWeekday = Weekday(Date, vbMonday)
  xNowTime = Format(Now, "hh:nn:ss")
  xIsDelay = False
  xRet1 = StrComp(xNowTime, xDelayTime)
  xRet2 = StrComp(xNowTime, xCompareTime)
  If xRet1 = xRet2 Then
    xIsDelay = True
  End If
  If (xRet1 = -1) And (xRet2 = -1) Then
    xMail.DeferredDeliveryTime = Date & " " & xDelayTime
  Else
    If ((xWeekday = 5) And xIsDelay) Or (xWeekday = 6) Or (xWeekday = 7) Then
      xMail.DeferredDeliveryTime = (Date + (5 - xWeekday + 3)) & " " & xDelayTime
    ElseIf xIsDelay Then
      xMail.DeferredDeliveryTime = (Date + 1) & " " & xDelayTime
    End If
  End If
Exit Sub
xError:
  MsgBox "ItemSend: " & Err.Description, , "Kutools for Outlook"
End Sub
Δεν υπάρχουν σχόλια δημοσιεύτηκε ακόμα

Ακολουθησε μας

Πνευματικά δικαιώματα © 2009 - www.extendoffice.com. | Ολα τα δικαιώματα διατηρούνται. Τροφοδοτείται από ExtendOffice. | Sitemap
Το Microsoft και το λογότυπο του Office είναι εμπορικά σήματα ή σήματα κατατεθέντα της Microsoft Corporation στις Ηνωμένες Πολιτείες ή / και σε άλλες χώρες.
Προστατεύεται από το Sectigo SSL