:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser

CODE VBA การส่งอีเมล์ Outlook Error

ฟอรัมถาม-ตอบปัญหาการใช้งาน Macro และ VBA
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
aniwat2011
Member
Member
Posts: 134
Joined: Tue Mar 08, 2011 2:21 pm
Location: ขอนแก่น
Excel Ver: 2019

CODE VBA การส่งอีเมล์ Outlook Error

#1

Post by aniwat2011 »

เรียนอาจารย์ และผู้รู้ทุกท่านครับ
ผมมีปัญหาเรื่อง CODE VBA การส่งอีเมล์ Outlook ครับ
ไม่รู้ว่าติดตรงไหน จะแก้อย่างไรครับ
ขอบคุณครับ

Code: Select all

Sub Send_Email_Program()
    Dim myoutlook As Outlook.Application
    Dim mitem As Outlook.MailItem
    
    Set myoutlook = New Outlook.Application

    lastrow = Sheets("Mail").Range("A" & Rows.Count).End(xlUp).Row
    
    For i = 2 To lastrow
        Set mitem = myoutlook.CreateItem(olMailItem)
            With mitem
                .To = Sheets("Mail").Range("A" & i).Value
                .CC = Sheets("Mail").Range("B" & i).Value
                .Subject = Sheets("Mail").Range("D" & i).Value
                .Body = Sheets("Mail").Range("E" & i).Value
                .Attachments.Add (Sheets("Mail").Range("F" & i).Value)
                .Send
             End With
        Next i

    MsgBox "ส่ง Email ครบทุกคนแล้ว"

End Sub
debug.gif
debug.gif (32.53 KiB) Viewed 61 times
debug2.gif
debug2.gif (36.52 KiB) Viewed 61 times
Attachments
โปรแกรมส่งอีเมล์.xlsb
(17.15 KiB) Downloaded 7 times
User avatar
snasui
Site Admin
Site Admin
Posts: 31205
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: CODE VBA การส่งอีเมล์ Outlook Error

#2

Post by snasui »

:D เมื่อใช้ Option Explicit อยู่ด้านบนของ Module หมายถึงต้องประกาศตัวแปรทุกตัวเสียก่อนที่จะใช้งานครับ

ตัวแปรที่ยังไม่ประกาศคือ lastrow และ i จึงต้องประกาศเพิ่มเป็น

Code: Select all

Option Explicit

Sub Send_Email_Program()
    Dim myoutlook As Outlook.Application
    Dim mitem As Outlook.MailItem
    Dim lastrow As Long, i As Integer
'Other code
aniwat2011
Member
Member
Posts: 134
Joined: Tue Mar 08, 2011 2:21 pm
Location: ขอนแก่น
Excel Ver: 2019

Re: CODE VBA การส่งอีเมล์ Outlook Error

#3

Post by aniwat2011 »

ขอบพระคุณมาก ๆ ครับอาจารย์
aniwat2011
Member
Member
Posts: 134
Joined: Tue Mar 08, 2011 2:21 pm
Location: ขอนแก่น
Excel Ver: 2019

Re: CODE VBA การส่งอีเมล์ Outlook Error

#4

Post by aniwat2011 »

อาจารย์ครับ เวลาเราส่งเมล์จำนวนมาก ๆ หากมีเมล์ผิด มันจะหยุด ถ้าไม่อยากให้มันหยุด โดยให้มันข้ามไปเลยได้ไหมครับ จะต้องเพิ่มอะไรครับผม
aniwat2011
Member
Member
Posts: 134
Joined: Tue Mar 08, 2011 2:21 pm
Location: ขอนแก่น
Excel Ver: 2019

Re: CODE VBA การส่งอีเมล์ Outlook Error

#5

Post by aniwat2011 »

มันขึ้นแบบนี้ครับอาจารย์
และไม่รู้ว่าเมล์ของใครผิดครับ
error5.gif
error5.gif (21.82 KiB) Viewed 49 times
aniwat2011
Member
Member
Posts: 134
Joined: Tue Mar 08, 2011 2:21 pm
Location: ขอนแก่น
Excel Ver: 2019

Re: CODE VBA การส่งอีเมล์ Outlook Error

#6

Post by aniwat2011 »

และอยากให้มีช่อง Status ว่าส่งแล้วได้ไหมครับอาจารย์
User avatar
snasui
Site Admin
Site Admin
Posts: 31205
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: CODE VBA การส่งอีเมล์ Outlook Error

#7

Post by snasui »

:D กรณีไม่ต้องการให้แสดง Error ลองใส่

on error resume next ก่อนบรรทัด for i ... next ครับ

ส่วนการให้แสดงว่าส่งแล้วหรืออื่นใดจำเป็นต้องเขียนเองก่อน ติดแล้วค่อยถามกันต่อครับ
aniwat2011
Member
Member
Posts: 134
Joined: Tue Mar 08, 2011 2:21 pm
Location: ขอนแก่น
Excel Ver: 2019

Re: CODE VBA การส่งอีเมล์ Outlook Error

#8

Post by aniwat2011 »

ขอบพระคุณมากครับอาจารย์
aniwat2011
Member
Member
Posts: 134
Joined: Tue Mar 08, 2011 2:21 pm
Location: ขอนแก่น
Excel Ver: 2019

Re: CODE VBA การส่งอีเมล์ Outlook Error

#9

Post by aniwat2011 »

ลองใช้แล้วได้ผลครับอาจารย์ มันดำเนินการจนเสร็จ ไม่ขึ้น error ครับ ขอบคุณอีกครั้งครับผม
aniwat2011
Member
Member
Posts: 134
Joined: Tue Mar 08, 2011 2:21 pm
Location: ขอนแก่น
Excel Ver: 2019

Re: CODE VBA การส่งอีเมล์ Outlook Error

#10

Post by aniwat2011 »

อาจารย์ครับ ผมกดส่งวันนี้ แล้วผมเช็คดูที่ถาดส่งปรากฏว่าไม่มีรายการส่งเลยครับ
ถาดส่ง.gif
ถาดส่ง.gif (38.69 KiB) Viewed 43 times
User avatar
snasui
Site Admin
Site Admin
Posts: 31205
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:

Re: CODE VBA การส่งอีเมล์ Outlook Error

#11

Post by snasui »

:D อันนี้ต้องฝึก Debug ให้ทราบเองว่าเกิดจาก Code บรรทัดไหน ดูการ Loop ไปทีละค่าว่ามันมีการส่งอีเมลหรือไม่ครับ

Code ที่เขียนจะต้องติดตามได้ทุกบรรทัดว่าทำงานตามที่ต้องการหรือไม่ และการติดตามที่ว่านี้คือการ Debug

วิธีการ Debug ผมโพสต์ไว้ที่ Link นี้ https://snasui.com/viewtopic.php?f=3&t= ... 47#p103247 หากอ่านแล้วไม่เข้าใจสามารถสอบถามเพิ่มเติมมาได้

การจะช่วยดูให้ได้นอกจากแนบภาพที่แสดงปัญหาแล้วจะต้องแนบไฟล์ที่เกี่ยวข้องเพื่อให้เพื่อนสมาชิกสามารถช่วยทดสอบได้ด้วยครับ
Post Reply