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

จะส่งอีเมลได้อย่างไรหากตรงตามวันที่ครบกำหนดใน Excel

ดังที่แสดงในภาพหน้าจอด้านล่าง หากวันครบกำหนดในคอลัมน์ C น้อยกว่าหรือเท่ากับ 7 วัน (เช่น วันที่ปัจจุบันคือ 2017/9/13) อีเมลจะถูกส่งไปยังผู้รับที่ระบุในคอลัมน์ A และ เนื้อหาที่ระบุในคอลัมน์ B จะแสดงในเนื้อหาของอีเมล คุณจะทำอย่างไรเพื่อให้บรรลุ? บทความนี้มีโค้ด VBA เพื่อช่วยให้คุณทำงานนี้สำเร็จ

ส่งอีเมลหากถึงวันครบกำหนดพร้อมรหัส VBA


ส่งอีเมลหากถึงวันครบกำหนดพร้อมรหัส VBA

โปรดทำดังนี้เพื่อส่งการแจ้งเตือนทางอีเมลหากตรงตามวันที่ครบกำหนดใน Excel

1 กด อื่น ๆ + F11 พร้อมกันเพื่อเปิดไฟล์ Microsoft Visual Basic สำหรับแอปพลิเคชัน หน้าต่าง

2 ใน Microsoft Visual Basic สำหรับแอปพลิเคชัน โปรดคลิก สิ่งที่ใส่เข้าไป > โมดูล. จากนั้นคัดลอกและวางโค้ด VBA ด้านล่างลงในหน้าต่างโมดูล

รหัส VBA: ส่งอีเมลหากวันครบกำหนดปิดใน Excel

Public Sub CheckAndSendMail()
'Updated by Extendoffice 2018/11/22
    Dim xRgDate As Range
    Dim xRgSend As Range
    Dim xRgText As Range
    Dim xRgDone As Range
    Dim xOutApp As Object
    Dim xMailItem As Object
    Dim xLastRow As Long
    Dim vbCrLf As String
    Dim xMailBody As String
    Dim xRgDateVal As String
    Dim xRgSendVal As String
    Dim xMailSubject As String
    Dim i As Long
    On Error Resume Next
    Set xRgDate = Application.InputBox("Please select the due date column:", "KuTools For Excel", , , , , , 8)
    If xRgDate Is Nothing Then Exit Sub
    Set xRgSend = Application.InputBox("Please select the recipients?email column:", "KuTools For Excel", , , , , , 8)
    If xRgSend Is Nothing Then Exit Sub
    Set xRgText = Application.InputBox("Select the column with reminded content in your email:", "KuTools For Excel", , , , , , 8)
    If xRgText Is Nothing Then Exit Sub
    xLastRow = xRgDate.Rows.count
    Set xRgDate = xRgDate(1)
    Set xRgSend = xRgSend(1)
    Set xRgText = xRgText(1)
    Set xOutApp = CreateObject("Outlook.Application")
    For i = 1 To xLastRow
        xRgDateVal = ""
        xRgDateVal = xRgDate.Offset(i - 1).Value
        If xRgDateVal <> "" Then
        If CDate(xRgDateVal) - Date <= 7 And CDate(xRgDateVal) - Date > 0 Then
            xRgSendVal = xRgSend.Offset(i - 1).Value
            xMailSubject = xRgText.Offset(i - 1).Value & " on " & xRgDateVal
            vbCrLf = "<br><br>"
            xMailBody = "<HTML><BODY>"
            xMailBody = xMailBody & "Dear " & xRgSendVal & vbCrLf
            xMailBody = xMailBody & "Text : " & xRgText.Offset(i - 1).Value & vbCrLf
            xMailBody = xMailBody & "</BODY></HTML>"
            Set xMailItem = xOutApp.CreateItem(0)
            With xMailItem
                .Subject = xMailSubject
                .To = xRgSendVal
                .HTMLBody = xMailBody
                .Display
                '.Send
            End With
            Set xMailItem = Nothing
        End If
    End If
    Next
    Set xOutApp = Nothing
End Sub

หมายเหตุ: เส้น ถ้า CDate (xRgDateVal) - วันที่ <= 7 และ CDate (xRgDateVal) - วันที่> 0 จากนั้นในรหัส VBA หมายความว่าวันครบกำหนดต้องมากกว่า 1 วันและน้อยกว่าหรือเท่ากับ 7 วัน คุณสามารถเปลี่ยนได้ตามต้องการ

3 กด ปุ่ม F5 เพื่อเรียกใช้รหัส ในครั้งแรกที่โผล่ขึ้นมา Kutools สำหรับ Excel โปรดเลือกช่วงคอลัมน์วันที่ครบกำหนดจากนั้นคลิกที่ OK ปุ่ม. ดูภาพหน้าจอ:

4. จากนั้นครั้งที่สอง Kutools สำหรับ Excel กล่องโต้ตอบจะปรากฏขึ้นโปรดเลือกช่วงคอลัมน์ที่เกี่ยวข้องซึ่งมีที่อยู่อีเมลของผู้รับแล้วคลิก OK ปุ่ม. ดูภาพหน้าจอ:

5. ในช่วงสุดท้าย Kutools สำหรับ Excel กล่องโต้ตอบเลือกเนื้อหาที่คุณต้องการแสดงในเนื้อหาอีเมลจากนั้นคลิกที่ไฟล์ OK ปุ่ม

จากนั้นอีเมลจะถูกสร้างขึ้นโดยอัตโนมัติพร้อมระบุผู้รับหัวเรื่องและเนื้อหาที่ระบุไว้หากวันครบกำหนดในคอลัมน์ C น้อยกว่าหรือเท่ากับ 7 วัน กรุณาคลิกที่ไฟล์ ส่ง ปุ่มเพื่อส่งอีเมล

หมายเหตุ:

1. อีเมลที่สร้างขึ้นแต่ละฉบับจะตรงกับวันที่ครบกำหนด ตัวอย่างเช่นหากมีวันครบกำหนดสามวันตรงตามเกณฑ์ข้อความอีเมลสามข้อความจะถูกสร้างขึ้นโดยอัตโนมัติ

2. รหัสนี้จะไม่ถูกเรียกใช้หากไม่มีวันที่ที่ตรงตามเกณฑ์

3. รหัส VBA จะใช้งานได้ก็ต่อเมื่อคุณใช้ Outlook เป็นโปรแกรมอีเมลของคุณ


บทความที่เกี่ยวข้อง:


เครื่องมือเพิ่มประสิทธิภาพการทำงานในสำนักงานที่ดีที่สุด

Kutools สำหรับ Excel แก้ปัญหาส่วนใหญ่ของคุณและเพิ่มผลผลิตของคุณได้ถึง 80%

  • นำมาใช้ใหม่: ใส่อย่างรวดเร็ว สูตรที่ซับซ้อนแผนภูมิ และสิ่งที่คุณเคยใช้มาก่อน เข้ารหัสเซลล์ ด้วยรหัสผ่าน; สร้างรายชื่อผู้รับจดหมาย และส่งอีเมล ...
  • ซุปเปอร์ฟอร์มูล่าบาร์ (แก้ไขข้อความและสูตรหลายบรรทัดได้อย่างง่ายดาย); การอ่านเค้าโครง (อ่านและแก้ไขเซลล์จำนวนมากได้อย่างง่ายดาย); วางลงในช่วงที่กรองแล้ว...
  • ผสานเซลล์ / แถว / คอลัมน์ โดยไม่สูญเสียข้อมูล แยกเนื้อหาของเซลล์ รวมแถว / คอลัมน์ที่ซ้ำกัน... ป้องกันเซลล์ซ้ำ; เปรียบเทียบช่วง...
  • เลือกซ้ำหรือไม่ซ้ำ แถว; เลือกแถวว่าง (เซลล์ทั้งหมดว่างเปล่า); Super Find และ Fuzzy Find ในสมุดงานจำนวนมาก สุ่มเลือก ...
  • สำเนาถูกต้อง หลายเซลล์โดยไม่เปลี่ยนการอ้างอิงสูตร สร้างการอ้างอิงอัตโนมัติ ถึงหลายแผ่น ใส่สัญลักษณ์แสดงหัวข้อย่อย, กล่องกาเครื่องหมายและอื่น ๆ ...
  • แยกข้อความ, เพิ่มข้อความ, ลบตามตำแหน่ง, ลบ Space; สร้างและพิมพ์ผลรวมย่อยของเพจ แปลงระหว่างเนื้อหาของเซลล์และความคิดเห็น...
  • ซุปเปอร์ฟิลเตอร์ (บันทึกและใช้โครงร่างตัวกรองกับแผ่นงานอื่น ๆ ); การเรียงลำดับขั้นสูง ตามเดือน / สัปดาห์ / วันความถี่และอื่น ๆ ตัวกรองพิเศษ โดยตัวหนาตัวเอียง ...
  • รวมสมุดงานและแผ่นงาน; ผสานตารางตามคอลัมน์สำคัญ แยกข้อมูลออกเป็นหลายแผ่น; Batch แปลง xls, xlsx และ PDF...
  • คุณสมบัติที่ทรงพลังมากกว่า 300 รายการ. รองรับ Office/Excel 2007-2021 และ 365 รองรับทุกภาษา ง่ายต่อการปรับใช้ในองค์กรหรือองค์กรของคุณ คุณสมบัติเต็มรูปแบบ ทดลองใช้ฟรี 30 วัน รับประกันคืนเงินภายใน 60 วัน
kte แท็บ 201905

แท็บ Office นำอินเทอร์เฟซแบบแท็บมาที่ Office และทำให้งานของคุณง่ายขึ้นมาก

  • เปิดใช้งานการแก้ไขและอ่านแบบแท็บใน Word, Excel, PowerPoint, ผู้จัดพิมพ์, Access, Visio และโครงการ
  • เปิดและสร้างเอกสารหลายรายการในแท็บใหม่ของหน้าต่างเดียวกันแทนที่จะเป็นในหน้าต่างใหม่
  • เพิ่มประสิทธิภาพการทำงานของคุณ 50% และลดการคลิกเมาส์หลายร้อยครั้งให้คุณทุกวัน!
ด้านล่าง officetab
จัดเรียงความคิดเห็นโดย
ความคิดเห็น (124)
ได้รับคะแนน 4.5 จาก 5 · การจัดอันดับ 1
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ขอบคุณสำหรับการแบ่งปัน


คุณจะเพิ่มอินพุต Cc หรือผู้รับหลายคนได้อย่างไร
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดีแบรนดอน

ขออภัยที่ต้องแสดงความคิดเห็นในโพสต์ของคุณโดยไม่มีคำตอบ แต่คุณสามารถรับรหัส VBA เพื่อส่งอีเมลได้หรือไม่
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ฉันใช้รหัส VBA ของคุณเพื่อส่งอีเมลตามค่าของเซลล์ แต่มันใช้งานไม่ได้
ทุกอย่างจนถึงขั้นตอนที่ 5 ใช้งานได้ แต่ไม่มีการส่งอีเมล ใครสามารถช่วยฉันด้วยสิ่งนี้
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
Me viene muy bien gracias por el aporte, solo me falta como puedo hacerlo automaticamente sin necesidad de hacerlo manualmente el envio del correo. ลงชื่อเข้าใช้
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
รหัสนี้หยุดโปรแกรม excel ของฉันเมื่อฉันรัน หน่วยความจำเข้มข้นหรือไม่?
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดีโรเบิร์ต,
ปัญหาที่คุณกล่าวถึงไม่ปรากฏในกรณีของฉัน ฉันขอเวอร์ชัน Office ของคุณได้ไหม
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
เราใส่รายละเอียดเพียงครั้งเดียวก็ส่งอีเมลได้อัตโนมัติ แทนที่จะต้องเลือกคอลัมน์ตลอด?
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี เดียยา
หากคุณไม่ต้องการเลือกคอลัมน์ด้วยตนเอง โปรดใช้โค้ด VBA ด้านล่าง
หมายเหตุ: คุณต้องเลือกคอลัมน์วันที่ครบกำหนดหลังจากใช้รหัสเท่านั้น

CheckAndSendMail() ย่อยสาธารณะ
'ปรับปรุงโดย Extendoffice 2017 / 9 / 14
Dim xRgDate เป็นช่วง
Dim xRgSend เป็นช่วง
Dim xRgText เป็นช่วง
Dim xRgDone เป็นช่วง
Dim xOutApp เป็นวัตถุ
Dim xMailItem เป็นวัตถุ
Dim xLastRow ตราบใดที่
Dim vbCrLf เป็นสตริง
Dim xMailBody เป็นสตริง
Dim xRgDateVal เป็นสตริง
Dim xRgSendVal เป็นสตริง
Dim xMailSubject เป็นสตริง
หรี่ฉันนาน
เกี่ยวกับข้อผิดพลาดต่อไป
Set xRgDate = Application.InputBox("โปรดเลือกคอลัมน์วันที่ครบกำหนด:", "KuTools For Excel", , , , , , , 8)
ถ้า xRgDate ไม่มีอะไร ให้ออกจาก Sub
xLastRow = xRgDate.Rows.Count
ตั้งค่า xRgDate = xRgDate(1)
ตั้งค่า xRgSend = xRgSend(1)
ตั้งค่า xRgText = xRgText(1)
ตั้งค่า xOutApp = CreateObject("Outlook.Application")
สำหรับฉัน = 1 ถึง xLastRow
xRgDateVal = xRgDate.Offset(I - 1).Value
ถ้า CDate(xRgDateVal) - วันที่ <= 7 และ CDate(xRgDateVal) - วันที่ > 0 จากนั้น
xRgSendVal = xRgSend.Offset(I - 1).Value
xMailSubject = xRgText.Offset(I - 1).Value & " บน " & xRgDateVal
vbCrLf = "

"
xMailBody = "สวัสดี" & vbNewLine & vbNewLine & _
"นี่คือบรรทัดที่ 1" & vbNewLine & _
“นี่คือบรรทัดที่ 2”
ตั้งค่า xMailItem = xOutApp.CreateItem(0)
ด้วย xMailItem
. ถึง = "ที่อยู่อีเมล"
.CC = ""
.BCC = ""
.ubject = "ส่งโดยการทดสอบค่าเซลล์"
.Body = xMailBody
.Display หรือใช้ .Send
จบด้วย
ตั้งค่า xMailItem = Nothing
End If
ต่อไป
ตั้งค่า xOutApp = Nothing
ย่อยสิ้นสุด
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี,
ฉันค่อนข้างเป็นมือใหม่และฉันอยากจะถามคำถามอื่นเกี่ยวกับ Sub ที่ยอดเยี่ยมของคุณ

ฉันจะส่งอีเมลได้เฉพาะในกรณีที่มีที่อยู่อีเมลอยู่ในเซลล์ที่เกี่ยวข้องเท่านั้น

ฉันต้องการสิ่งนี้ เพราะในเครื่องมือ excel ของฉัน ฉันใช้ปุ่มบางปุ่มสำหรับแต่ละคนที่ต้องการการเตือนความจำ

ขอบคุณล่วงหน้า!!

โทมัส
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดีโทมัส
เราได้โพสต์บทความ "วิธีการส่งอีเมลไปยังที่อยู่อีเมลที่ระบุในเซลล์ใน Excel"
https://www.extendoffice.com/documents/excel/4717-excel-macro-send-email-to-address-in-cells.html
บางทีคุณอาจพบวิธีแก้ปัญหาของคุณในบทความนี้
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ฉันต้องการสิ่งนี้เพื่อทำงานในทุกเวิร์กชีตในเวิร์กบุ๊ก โดยวันที่ในอนาคตจะถูกป้อนด้วยตนเองในเซลล์เดียวกันในทุกชีต และสร้างชีตใหม่ทุกวัน ฉันยังต้องการชื่อเวิร์กชีตในอีเมลด้วย ดังนั้นฉันจะได้รู้ว่าแผ่นงานใดครบกำหนด
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ขออภัยไม่สามารถช่วยคุณในเรื่องนี้
ยินดีต้อนรับสู่การโพสต์คำถามใดๆ เกี่ยวกับ Excel ในฟอรัมของเรา: https://www.extendoffice.com/forum.html. คุณจะได้รับการสนับสนุน Excel เพิ่มเติมจากแฟน ๆ มืออาชีพหรือแฟน ๆ ของ Excel คนอื่นๆ
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
อย่าทำให้มันทำงาน การใช้ Office 365 ดังนั้น Outlook และ Excel ควรจะรัดกุมเพียงพอ เช่นเดียวกับในโพสต์จาก "schou" 4 เดือนที่แล้ว มันทำงานได้ถึงขั้นตอนที่ 5 แต่ก็ไม่มีอะไร
วิธีแก้ปัญหานี้?
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ฉันมี excel ในการส่งอีเมล แต่ฉันสามารถตั้งค่านี้เพื่อส่งอีเมลทุกครั้งที่ฉันเปิด excel แทนที่จะเลือกคอลัมน์ในแต่ละครั้ง

ฉันมีสมุดงาน 24 หน้า ฉันจึงต้องการส่งอีเมลโดยอัตโนมัติเมื่อเปิดสมุดงาน


ขอบคุณมาก
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี
คุณหมายถึงตรวจสอบวันครบกำหนดโดยอัตโนมัติในสมุดงานและส่งอีเมลเมื่อเปิดสมุดงานหรือไม่
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี,


มาโครนั้นยอดเยี่ยม แต่ฉันอยากจะถามอะไรซักอย่าง - หากคุณมีใครสักคนในรายการโดยไม่มีวันที่ว่าจะแก้ไขโค้ด vba เพื่อแยกผู้ชายคนนั้นได้อย่างไร ตอนนี้รหัสสร้างอีเมลแม้กระทั่งสำหรับผู้ชายที่ไม่มีวันที่


ขอบคุณ!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดีคุณ Lvan
รหัสได้รับการปรับปรุงด้วยการแก้ปัญหา โปรดลอง. ขอบคุณสำหรับความคิดเห็นของคุณ.
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี Mail กำลังสร้างคอลัมน์ที่มีข้อมูลว่างโดยอัตโนมัติ ฉันก็ต้องการรหัสที่อัปเดตเช่นกัน
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ขอบคุณมากสำหรับการบริจาค ฉันต้องการทราบวิธีการใช้การเลือกคอลัมน์คงที่โดยไม่ต้องใช้ kutools? นั่นคือปล่อยให้คอลัมน์เริ่มต้นของวันที่, ใบเสร็จ, และคำเตือน?
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
วันดี,
รหัส VBA ด้านล่างสามารถช่วยคุณได้ ได้โปรดลองดู

CheckAndSendMail() ย่อยสาธารณะ
'ปรับปรุงโดย Extendoffice 2018 / 11 / 22
Dim xRgDate เป็นช่วง
Dim xRgSend เป็นช่วง
Dim xRgText เป็นช่วง
Dim xRgDone เป็นช่วง
Dim xOutApp เป็นวัตถุ
Dim xMailItem เป็นวัตถุ
Dim xLastRow ตราบใดที่
Dim vbCrLf เป็นสตริง
Dim xMailBody เป็นสตริง
Dim xRgDateVal เป็นสตริง
Dim xRgSendVal เป็นสตริง
Dim xMailSubject เป็นสตริง
มืดมนตราบนานเท่านาน
เกี่ยวกับข้อผิดพลาดต่อไป
ตั้งค่า xRgDate = Range("C2:C4") 'โปรดอ้างอิงคอลัมน์วันที่ครบกำหนด
ถ้า xRgDate ไม่มีอะไร ให้ออกจาก Sub
ตั้งค่า xRgSend = Range("A2:A4") 'โปรดอ้างอิงถึงผู้รับคอลัมน์อีเมล
ถ้า xRgSend ไม่มีอะไร ให้ออกจาก Sub
ตั้งค่า xRgText = Range("B2:B4") ป้อนคอลัมน์ที่มีเนื้อหาเตือนความจำในอีเมลของคุณ
ถ้า xRgText ไม่มีอะไร ให้ออกจาก Sub
xLastRow = xRgDate.Rows.count
ตั้งค่า xRgDate = xRgDate(1)
ตั้งค่า xRgSend = xRgSend(1)
ตั้งค่า xRgText = xRgText(1)
ตั้งค่า xOutApp = CreateObject("Outlook.Application")
สำหรับฉัน = 1 ถึง xLastRow
xRgDateVal = ""
xRgDateVal = xRgDate.Offset(i - 1).Value
ถ้า xRgDateVal <> "" แล้ว
ถ้า CDate(xRgDateVal) - วันที่ <= 7 และ CDate(xRgDateVal) - วันที่ > 0 จากนั้น
xRgSendVal = xRgSend.Offset(i - 1).Value
xMailSubject = xRgText.Offset(i - 1).Value & " บน " & xRgDateVal
vbCrLf = "

"
xMailBody = ""
xMailBody = xMailBody & "เรียน" & xRgSendVal & vbCrLf
xMailBody = xMailBody & "ข้อความ:" & xRgText.Offset (i - 1).Value & vbCrLf
xMailBody = xMailBody & ""
ตั้งค่า xMailItem = xOutApp.CreateItem(0)
ด้วย xMailItem
.Subject = xMailSubject
.ถึง = xRgSendVal
.HTMLBody = xMailBody
.แสดง
'.ส่ง
จบด้วย
ตั้งค่า xMailItem = Nothing
End If
End If
ต่อไป
ตั้งค่า xOutApp = Nothing
ย่อยสิ้นสุด
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
เรียน คริสตัล

ขอบคุณสำหรับการแบ่งปันของคุณ

ฉันเป็นผู้เริ่มต้นและฉันมีปัญหากับรหัส

xMailBody = ""
xMailBody = xMailBody & "เรียน" & xRgSendVal & vbCrLf
xMailBody = xMailBody & "ข้อความ:" & xRgText.Offset (i - 1).Value & vbCrLf
xMailBody = xMailBody & ""

ข้อความไม่ขึ้นบรรทัดใหม่
คุณช่วยกรุณา

ขอบคุณ
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
นิ นิติ
คุณต้องเพิ่มบรรทัด vbCrLf = " "หน้าหนาว.
เช่น:
vbCrLf = " "
xMailBody = ""
xMailBody = xMailBody & "เรียน" & xRgSendVal & vbCrLf
xMailBody = xMailBody & "ข้อความ:" & xRgText.Offset (i - 1).Value & vbCrLf
xMailBody = xMailBody & ""
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
เรียน Crystal ในขณะที่เลือกคอลัมน์วันที่ สามารถเลือกเซลล์หลายเซลล์ในคอลัมน์ที่ต่างกันได้หรือไม่?
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี,
คุณคริสตัล ในการสนทนาครั้งล่าสุดของคุณกับคุณอีวาน เขาขอรหัสเพื่อส่งอีเมลทุกครั้งที่เปิดสเปรดชีตแทนที่จะป้อนรหัสในแต่ละครั้ง
ฉันต้องการรหัสเดียวกัน สถานการณ์เดียวกัน คุณช่วยได้ไหม
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ถูกต้อง ไม่ใช่กับคุณอีวาน แต่อยู่กับคุณออสติน
ขอขอบคุณ.
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี ฉันกำลังใช้โค้ดนี้ในเวอร์ชันที่แก้ไขแล้ว และฉันยังค่อนข้างใหม่กับ VBA ฉันสงสัยว่ามีความเป็นไปได้ที่จะส่งอีเมลเมื่อใด มาโครจะสามารถทำเครื่องหมาย X หรือถ้ามีคนกรอกอีเมลที่จะไม่ส่ง ฉันหวังว่าทั้งหมดนี้สมเหตุสมผล ความช่วยเหลือใด ๆ ที่ชื่นชมอย่างมาก

พื้นหลังเล็กน้อย ฉันใช้เครื่องมือนี้เพื่อเรียกใช้การตรวจสอบวันครบกำหนดที่ 30 วัน 60 วัน และเกินกำหนด ฉันต้องการ 1 อีเมลที่จะออกไปใน 30 วัน 1 ที่ 60 วันและเกินกำหนดเช่นกัน ฉันกำลังใช้งานสคริปต์ VB ที่ฉันเขียน เพื่อที่ฉันจะได้ทำให้มันเป็นอัตโนมัติทุกวัน ขอบคุณ!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี ฉันกำลังใช้โค้ดนี้ในเวอร์ชันที่แก้ไขแล้ว และฉันยังค่อนข้างใหม่กับ VBA ฉันสงสัยว่ามีความเป็นไปได้ที่จะส่งอีเมลเมื่อใด มาโครจะสามารถทำเครื่องหมาย X หรือถ้ามีคนกรอกอีเมลที่จะไม่ส่ง ฉันหวังว่าทั้งหมดนี้สมเหตุสมผล ความช่วยเหลือใด ๆ ที่ชื่นชมอย่างมาก พื้นหลังเล็กน้อย ฉันใช้เครื่องมือนี้เพื่อเรียกใช้การตรวจสอบวันครบกำหนดที่ 30 วัน 60 วัน และเกินกำหนด ฉันต้องการ 1 อีเมลที่จะออกไปใน 30 วัน 1 ที่ 60 วันและเกินกำหนดเช่นกัน ฉันกำลังใช้งานสคริปต์ VB ที่ฉันเขียน เพื่อที่ฉันจะได้ทำให้มันเป็นอัตโนมัติทุกวัน ขอบคุณ!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
Hello Sir,

สิ่งนี้มีประโยชน์มาก ฉันต้องการการปรับปรุงอีก 2 รายการในรหัสเดียวกัน ฉันต้องคลิกปุ่มส่งทุกครั้ง ไม่เป็นไร ขอแค่มีอีเมลให้ส่ง 10 ฉบับ จะเป็นอย่างไรถ้าฉัน > 25 อีเมลที่ต้องส่งในวันเดียว ดังนั้นโปรดให้รหัสเพื่อส่งอีเมลโดยอัตโนมัติเมื่อเลือกวันที่ครบกำหนด ผู้รับ หัวเรื่อง ฯลฯ

โปรดระบุรหัสเพื่อเพิ่มตัวเลือก " CC" ให้ฉันด้วย


ขอบคุณ

ซาวน์เดอร์ พี
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
วันดี,
โปรดลองใช้รหัส VBA ด้านล่าง หวังว่าฉันจะช่วยได้ ขอบคุณสำหรับความคิดเห็น

CheckAndSendMail() ย่อยสาธารณะ
'ปรับปรุงโดย Extendoffice 2018 / 11 / 22
Dim xRgDate เป็นช่วง
Dim xRgSend เป็นช่วง
Dim xRgText เป็นช่วง
Dim xRgDone เป็นช่วง
Dim xOutApp เป็นวัตถุ
Dim xMailItem เป็นวัตถุ
Dim xLastRow ตราบใดที่
Dim vbCrLf เป็นสตริง
Dim xMailBody เป็นสตริง
Dim xRgDateVal เป็นสตริง
Dim xRgSendVal เป็นสตริง
Dim xMailSubject เป็นสตริง
มืดมนตราบนานเท่านาน
เกี่ยวกับข้อผิดพลาดต่อไป
Set xRgDate = Application.InputBox("โปรดเลือกคอลัมน์วันที่ครบกำหนด:", "KuTools For Excel", , , , , , , 8)
ถ้า xRgDate ไม่มีอะไร ให้ออกจาก Sub
ตั้งค่า xRgSend = Application.InputBox("กรุณาเลือกผู้รับ?อีเมลคอลัมน์:", "KuTools For Excel", , , , , , 8)
ถ้า xRgSend ไม่มีอะไร ให้ออกจาก Sub
ตั้งค่า xRgCC = Application.InputBox("โปรดเลือกคอลัมน์ผู้รับ CC?email:", "KuTools For Excel", , , , , , 8)
ถ้า xRgCC ไม่มีอะไร ให้ออกจาก Sub
ตั้งค่า xRgText = Application.InputBox("เลือกคอลัมน์ที่มีเนื้อหาเตือนความจำในอีเมลของคุณ:", "KuTools For Excel", , , , , , 8)
ถ้า xRgText ไม่มีอะไร ให้ออกจาก Sub
xLastRow = xRgDate.Rows.Count
ตั้งค่า xRgDate = xRgDate(1)
ตั้งค่า xRgSend = xRgSend(1)
ตั้งค่า xRgCC = xRgCC(1)
ตั้งค่า xRgText = xRgText(1)
ตั้งค่า xOutApp = CreateObject("Outlook.Application")
สำหรับฉัน = 1 ถึง xLastRow
xRgDateVal = ""
xRgDateVal = xRgDate.Offset(i - 1).Value
ถ้า xRgDateVal <> "" แล้ว
ถ้า CDate(xRgDateVal) - วันที่ <= 7 และ CDate(xRgDateVal) - วันที่ > 0 จากนั้น
xRgSendVal = xRgSend.Offset(i - 1).Value
xRgCCVal = xRgCC.Offset(i - 1).Value
xMailSubject = xRgText.Offset(i - 1).Value & " บน " & xRgDateVal
vbCrLf = "

"
xMailBody = ""
xMailBody = xMailBody & "เรียน" & xRgSendVal & vbCrLf
xMailBody = xMailBody & "ข้อความ:" & xRgText.Offset (i - 1).Value & vbCrLf
xMailBody = xMailBody & ""
ตั้งค่า xMailItem = xOutApp.CreateItem(0)
ด้วย xMailItem
.Subject = xMailSubject
.ถึง = xRgSendVal
.Cc = xRgCCVal
.HTMLBody = xMailBody
.ส่ง
จบด้วย
ตั้งค่า xMailItem = Nothing
End If
End If
ต่อไป
ตั้งค่า xOutApp = Nothing
ย่อยสิ้นสุด
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดีคริสตัล

ขอบคุณสำหรับรหัสเพราะมันมีประโยชน์มาก แต่จะทำให้รหัสทำงานได้อย่างไรถ้าฉันใช้ outlook.office.com
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ในร่างกายฉันต้องการคอลัมน์ a,b,c ค่าในรูปแบบตารางเช่นวันที่หมดอายุเมื่อถึงในคอลัมน์เนื้อหาฉันต้องการพิมพ์รายละเอียดเซลล์ a,b,c ในรูปแบบตาราง
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี Dinesh BS,
ขออภัยไม่สามารถช่วยคุณในเรื่องนั้นได้ ยินดีต้อนรับสู่การโพสต์คำถามใด ๆ ในฟอรัมของเรา: https://www.extendoffice.com/forum.html.
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี ฉันเพิ่งเริ่มใช้ VBA มีวิธีให้โปรแกรมนี้ทำงานโดยอัตโนมัติทุกครั้งที่เปิดไฟล์หรือไม่?
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี L Echols,
สำหรับการเรียกใช้รหัสโดยอัตโนมัติเมื่อเปิดไฟล์ โปรดดับเบิลคลิกเพื่อเปิดหน้าต่างรหัส ThisWorkbook (อยู่ที่ด้านซ้ายของหน้าต่าง Microsoft Visual Basic for Applications) เลือกสมุดงานจากรายการดรอปดาวน์แรก จากนั้นคัดลอก เหนือโค้ด VBA (ยกเว้นบรรทัดแรกและบรรทัดสุดท้าย) ลงในหน้าต่างโค้ด และวางระหว่างสองบรรทัดที่กำหนด ดูภาพหน้าจอที่แนบมาด้านล่าง:
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
นี่มันเจ๋งมาก. ฉันสงสัยว่ามีวิธีเรียกใช้โค้ดโดยไม่ต้องเลือกค่า KuTools ทุกครั้งหรือไม่ เพื่อความกระจ่าง ฉันป้อนรหัสนี้ และตอนนี้เมื่อใดก็ตามที่ฉันเปิดสมุดงาน ฉันยังต้องเน้นคอลัมน์เดิม มีวิธีป้อนรหัสเพื่อเรียกใช้การตรวจสอบในคอลัมน์เดียวกันทุกครั้งหรือไม่ - ตราบใดที่ไม่มีการแก้ไขสมุดงาน - เพื่อเรียกใช้การตรวจสอบและกำหนดอีเมลตามเช็คดังกล่าว ขอบคุณล่วงหน้า.
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดีแดนนี่
โปรดลองโค้ดด้านล่างและเปลี่ยนช่วงตามที่คุณต้องการ

CheckAndSendMail() ย่อยสาธารณะ
'ปรับปรุงโดย Extendoffice 2019 / 5 / 17
Dim xRgDate เป็นช่วง
Dim xRgSend เป็นช่วง
Dim xRgText เป็นช่วง
Dim xRgDone เป็นช่วง
Dim xOutApp เป็นวัตถุ
Dim xMailItem เป็นวัตถุ
Dim xLastRow ตราบใดที่
Dim vbCrLf เป็นสตริง
Dim xMailBody เป็นสตริง
Dim xRgDateVal เป็นสตริง
Dim xRgSendVal เป็นสตริง
Dim xMailSubject เป็นสตริง
มืดมนตราบนานเท่านาน
เกี่ยวกับข้อผิดพลาดต่อไป
ตั้งค่า xRgDate = ช่วง ("C2: C4")
ถ้า xRgDate ไม่มีอะไร ให้ออกจาก Sub
ตั้งค่า xRgSend = ช่วง ("A2: A4")
ถ้า xRgSend ไม่มีอะไร ให้ออกจาก Sub
ตั้งค่า xRgText = ช่วง ("B2:B4")
ถ้า xRgText ไม่มีอะไร ให้ออกจาก Sub
xLastRow = xRgDate.Rows.Count
ตั้งค่า xRgDate = xRgDate(1)
ตั้งค่า xRgSend = xRgSend(1)
ตั้งค่า xRgText = xRgText(1)
ตั้งค่า xOutApp = CreateObject("Outlook.Application")
สำหรับฉัน = 1 ถึง xLastRow
xRgDateVal = ""
xRgDateVal = xRgDate.Offset(i - 1).Value
ถ้า xRgDateVal <> "" แล้ว
ถ้า CDate(xRgDateVal) - วันที่ <= 7 และ CDate(xRgDateVal) - วันที่ > 0 จากนั้น
xRgSendVal = xRgSend.Offset(i - 1).Value
xMailSubject = xRgText.Offset(i - 1).Value & " บน " & xRgDateVal
vbCrLf = "

"
xMailBody = ""
xMailBody = xMailBody & "เรียน" & xRgSendVal & vbCrLf
xMailBody = xMailBody & "ข้อความ:" & xRgText.Offset (i - 1).Value & vbCrLf
xMailBody = xMailBody & ""
ตั้งค่า xMailItem = xOutApp.CreateItem(0)
ด้วย xMailItem
.Subject = xMailSubject
.ถึง = xRgSendVal
.HTMLBody = xMailBody
.แสดง
'.ส่ง
จบด้วย
ตั้งค่า xMailItem = Nothing
End If
End If
ต่อไป
ตั้งค่า xOutApp = Nothing
ย่อยสิ้นสุด
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
นี่มันเจ๋งมาก. ฉันสงสัยว่ามีวิธีเรียกใช้โค้ดโดยไม่ต้องเลือกค่า KuTools ทุกครั้งหรือไม่ เพื่อความกระจ่าง ฉันป้อนรหัสนี้ และตอนนี้เมื่อใดก็ตามที่ฉันเปิดสมุดงาน ฉันยังต้องเน้นคอลัมน์เดิม มีวิธีป้อนรหัสเพื่อเรียกใช้การตรวจสอบในคอลัมน์เดียวกันทุกครั้งหรือไม่ - ตราบใดที่ไม่มีการแก้ไขสมุดงาน - เพื่อเรียกใช้การตรวจสอบและกำหนดอีเมลตามเช็คดังกล่าว ขอบคุณล่วงหน้า.
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดีคริสตัล
ฉันมีปัญหากับการส่งอีเมลอัตโนมัติเมื่อเปิดไฟล์ ตัวอย่างเช่น ฉันมีข้อมูลวันที่ครบกำหนดทั้งหมดใน Sheet1 อย่างไรก็ตาม หากฉันบันทึกและปิดไฟล์ในขณะที่ทำงานบน Sheet2 ทันทีที่ฉันเปิดไฟล์ ค่าที่จะส่งอีเมลจะอิงตาม Sheet2 ไม่ใช่ Sheet1 ฉันเพิ่มโมดูลใน Sheet1 และ ThisWorkbook เท่านั้น ฉันคิดว่าการมี vba เดียวกันบน ThisWorkbook ทริกเกอร์เพื่อส่งอีเมลอัตโนมัติบนแผ่นงานใดก็ตามที่ฉันเปิดไว้ในขณะนี้ ฉันจะจำกัด VBA ให้ดึงค่าจากแผ่นงานเฉพาะและส่งอีเมลเมื่อเปิดไฟล์ได้อย่างไร ขอบคุณมากสำหรับความช่วยเหลือของคุณล่วงหน้า!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ฉันยังใหม่กับ VBA มีวิธีเรียกใช้โปรแกรมนี้โดยอัตโนมัติทุกครั้งที่เปิดไฟล์หรือไม่?
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ใช่กับ


สมุดงานย่อยส่วนตัว_Open()
*ใส่รหัสที่นี่*
ย่อยสิ้นสุด
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี

ฉันมีคำถาม,

ถ้าฉันต้องการเลือกช่วงของเซลล์ที่กำหนดไว้ล่วงหน้า ฉันจะแก้ไขโค้ดในส่วนนี้ได้อย่างไร:

xLastRow = xRgDate.Rows.Count
ตั้งค่า xRgDate = xRgDate(1)

Toset โดยอัตโนมัติเซลล์?

ขอขอบคุณ :)
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี
หากคุณไม่ต้องการเลือกช่วงด้วยตนเองทุกครั้งที่ใช้รหัส โปรดใช้รหัสด้านล่าง

CheckAndSendMail() ย่อยสาธารณะ
'ปรับปรุงโดย Extendoffice 2019 / 12 / 10
Dim xRgDate เป็นช่วง
Dim xRgSend เป็นช่วง
Dim xRgText เป็นช่วง
Dim xRgDone เป็นช่วง
Dim xOutApp เป็นวัตถุ
Dim xMailItem เป็นวัตถุ
Dim xLastRow ตราบใดที่
Dim vbCrLf เป็นสตริง
Dim xMailBody เป็นสตริง
Dim xRgDateVal เป็นสตริง
Dim xRgSendVal เป็นสตริง
Dim xMailSubject เป็นสตริง
มืดมนตราบนานเท่านาน
เกี่ยวกับข้อผิดพลาดต่อไป
ตั้งค่า xRgDate = ช่วง ("C2: C4")
ถ้า xRgDate ไม่มีอะไร ให้ออกจาก Sub
ตั้งค่า xRgSend = ช่วง ("A2: A4")
ถ้า xRgSend ไม่มีอะไร ให้ออกจาก Sub
ตั้งค่า xRgText = ช่วง ("B2:B4")
ถ้า xRgText ไม่มีอะไร ให้ออกจาก Sub
xLastRow = xRgDate.Rows.Count
ตั้งค่า xRgDate = xRgDate(1)
ตั้งค่า xRgSend = xRgSend(1)
ตั้งค่า xRgText = xRgText(1)
ตั้งค่า xOutApp = CreateObject("Outlook.Application")
สำหรับฉัน = 1 ถึง xLastRow
xRgDateVal = ""
xRgDateVal = xRgDate.Offset(i - 1).Value
ถ้า xRgDateVal <> "" แล้ว
ถ้า CDate(xRgDateVal) - วันที่ <= 7 และ CDate(xRgDateVal) - วันที่ > 0 จากนั้น
xRgSendVal = xRgSend.Offset(i - 1).Value
xMailSubject = xRgText.Offset(i - 1).Value & " บน " & xRgDateVal
vbCrLf = "

"
xMailBody = ""
xMailBody = xMailBody & "เรียน" & xRgSendVal & vbCrLf
xMailBody = xMailBody & "ข้อความ:" & xRgText.Offset (i - 1).Value & vbCrLf
xMailBody = xMailBody & ""
ตั้งค่า xMailItem = xOutApp.CreateItem(0)
ด้วย xMailItem
.Subject = xMailSubject
.ถึง = xRgSendVal
.HTMLBody = xMailBody
.แสดง
'.ส่ง
จบด้วย
ตั้งค่า xMailItem = Nothing
End If
End If
ต่อไป
ตั้งค่า xOutApp = Nothing
ย่อยสิ้นสุด
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
บัวโนส ดิอาส! ¿que modificación tendría que realizar para dejar seleccionadas las celdas con la información de fecha, texto y correo y no tener que seleccionarlas cada vez que se activa la macro?

también me gustaría saber como introducir un CC, es decir, poder poner a otra persona en coopia del correo. เพิ่มเติม กราเซียส!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ฮือออ! ปูดิสเต้ โซลูซิโอนาร์ เอสโต? จำเป็น necesitando lo mismo.. gracias!
มีความคิดเห็นยังไม่มีการโพสต์ที่นี่
โหลดเพิ่มเติม
แสดงความคิดเห็นของคุณ
โพสต์ในฐานะแขก
×
ให้คะแนนโพสต์นี้:
0   ตัวอักษร
สถานที่แนะนำ

ช่องทางอื่นๆ

ลิขสิทธิ์© 2009 - wwwextendoffice.com | สงวนลิขสิทธิ์. ขับเคลื่อนโดย ExtendOffice. | แผนผังเว็บไซต์
Microsoft และโลโก้ Office เป็นเครื่องหมายการค้าหรือเครื่องหมายการค้าจดทะเบียนของ Microsoft Corporation ในสหรัฐอเมริกาและ / หรือประเทศอื่น ๆ
ได้รับการปกป้องโดย Sectigo SSL