บันทึกอีเมลรายวันรวมไว้หากชื่อไฟล์ซ้ำกัน

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

Public Sub SaveMsgs(Item As Outlook.MailItem)
 Dim sPath As String
 Dim dtDate As Date
 Dim sName As String
 Dim enviro As String
 Dim sSender As String
 Dim strFolder As String
 Dim strNewFolder As String
 Dim save_to_folder As String
 Dim strMyPath as String
 Dim intCount as Integer
 Dim 

 enviro = CStr(Environ("USERPROFILE"))

 sName = Item.Subject
 ReplaceCharsForFileName sName, "_"

 sSender = Item.Sender

 dtDate = Item.ReceivedTime
 sName = sSender & " - " & sName & ".msg"

 strNewFolder = Format(Date, "mm-dd-yyyy")
 strFolder = "C:\IT Documents\" & strNewFolder & "\"

 If Len(Dir(strFolder, vbDirectory)) = 0 Then
   MkDir (strFolder)
 End If

 save_to_folder = strFolder

 Item.SaveAs save_to_folder & sName, olMSG
End Sub

Private Sub ReplaceCharsForFileName(sName As String, _
     sChr As String _)

 sName = Replace(sName, "/", sChr)
 sName = Replace(sName, "\", sChr)
 sName = Replace(sName, ":", sChr)
 sName = Replace(sName, "?", sChr)
 sName = Replace(sName, Chr(34), sChr)
 sName = Replace(sName, "<", sChr)
 sName = Replace(sName, ">", sChr)
 sName = Replace(sName, "|", sChr)
End Sub

นี่คือรหัสที่ฉันกำลังคิดที่จะเพิ่ม

Do While True 
  strMyPath = strFolder & sName 
  If objFSO>FileExists(strMyPath) Then 
    intCount = intCount + 1 
    sName = Copy (" & intCount & ") 
  Else Exit Do 
  End If 
Loop

สิ่งนี้จะใช้ได้กับสิ่งที่ฉันพยายามทำหรือไม่ หรือจะดีกว่าถ้าเพิ่มเวลาต่อท้ายชื่อไฟล์


person novicevba    schedule 11.05.2015    source แหล่งที่มา
comment
ในตอนแรก โปรดลบ Dim นั้นออกเมื่อสิ้นสุดการประกาศของคุณ ;)   -  person shA.t    schedule 12.05.2015


คำตอบ (1)


หากต้องการบันทึกด้วยวันที่ เวลา วินาทีและหัวเรื่อง คุณสามารถทำได้

 sName = Format(dtDate, "MM-DD-YYYY", vbUseSystemDayOfWeek, _
                    vbUseSystem) & Format(dtDate, "-hhnnss", _
                    vbUseSystemDayOfWeek, vbUseSystem) & "-" & sName & ".msg"
person 0m3r    schedule 12.05.2015
comment
ขอขอบคุณสำหรับความช่วยเหลือของคุณ. ดูเหมือนว่าจะได้ทำเคล็ดลับแล้ว ตอนนี้ฉันกำลังดำเนินการเพื่อไม่ให้แสดงทั้งหมดเป็นสตริงเดียวโดยไม่มีเครื่องหมายแยก แต่ฉันสามารถเล่นกับสิ่งนั้นได้ แต่ปัญหาอื่นที่ฉันมีซึ่งฉันเพิ่งสังเกตเห็น ด้วยเหตุผลบางประการ อีเมลตอบกลับกลับมาพร้อมกับประเภทไฟล์แทนที่จะเป็น .msg ตัวอย่างเช่น ฉันได้รับอีเมลจาก Joe ฉันตอบกลับ แล้ว Joe ก็ตอบกลับ การตอบกลับนั้น เข้ามาในรูปแบบไฟล์ไฟล์ มีความคิดใด ๆ ว่าทำไมถึงเป็นเช่นนี้? ฉันได้อ่านโค้ดอีกครั้งแล้ว และดูเหมือนจะไม่สามารถเข้าใจได้ในขณะนี้ - person novicevba; 12.05.2015