| |
Zdravo na spletu sem našel kodo, ki avtomatsko prekopira vsebino e-maila v excel. Z ukazom body se v stolpec F izpiše vsebina sporočila. V ostale se izpisujejo še nekatere ostali podatki. Jedro sporočila bi rad razdelil tako, da se vsaka vrstica sporočila vpiše v svoj stolpec. Na primer: Stolpec F prva vrstica jedra sporočila Stolpec G druga vrstica v jedra sporočila Stolpec H tretja vrstica v jedra sporočila
Predvidevam, da moram uporabiti funkcijo Split in potem še zanko. Sem popolnoma nov v VBA tako, da če ima kdo kakšen namig bi bil zelo hvaležen.
Primer kode:
Const xlUp As Long = -4162
Sub ExportToExcel(MyMail As MailItem) Dim strID As String, olNS As Outlook.NameSpace Dim olMail As Outlook.MailItem Dim strFileName As String Dim Words As String
'~~> Excel Variables Dim oXLApp As Object, oXLwb As Object, oXLws As Object Dim lRow As Long
strID = MyMail.EntryID Set olNS = Application.GetNamespace("MAPI") Set olMail = olNS.GetItemFromID(strID)
'~~> Establish an EXCEL application object On Error Resume Next Set oXLApp = GetObject(, "Excel.Application")
'~~> If not found then create new instance If Err.Number 0 Then Set oXLApp = CreateObject("Excel.Application") End If Err.Clear On Error GoTo 0
'~~> Show Excel oXLApp.Visible = True
'~~> Open the relevant file Set oXLwb = oXLApp.Workbooks.Open("C:\Users\jakap_tf0nzfh\Desktop\Sample.xls")
'~~> Set the relevant output sheet. Change as applicable Set oXLws = oXLwb.Sheets("Sheet1")
lRow = oXLws.Range("A" & oXLApp.Rows.Count).End(xlUp).Row + 1
'~~> Write to outlook With oXLws ' '~~> Code here to output data from email to Excel File '~~> For example ' .Range("A" & lRow).Value = olMail.Subject .Range("B" & lRow).Value = olMail.CreationTime .Range("C" & lRow).Value = olMail.ReceivedTime .Range("D" & lRow).Value = olMail.SenderName .Range("E" & lRow).Value = olMail.SenderEmailAddress .Range("F" & lRow).Value = olMail.Body ' End With
'~~> Close and Clean up Excel oXLwb.Close (True) oXLApp.Quit Set oXLws = Nothing Set oXLwb = Nothing Set oXLApp = Nothing
Set olMail = Nothing Set olNS = Nothing End Sub
|
| |
| |
Bistvo je v vrstici:
.Range("F" & lRow).Value = olMail.Body
Ta vrstica prepiše sporočilo v F stolpec v Excelu.
Tako da bi to vrstico moral zamenjati z nekaj podobnega:
' prebereš sporočilo v spremenljivko
sporocilo = olMail.Body
'razdeli sporočilo po vrsticah
arr = Split(sporocilo, vbCrLf)
'zadnji stolpec
zadnji_stolpec = "F"
for each x in arr
'dobiš naslednjo črko
zadnji_stolpec = Chr(Asc(zadnji_stolpec) + 1)
'zapišeš vrednost
.Range(zadnji_stolpec & lRow).Value = x
next
Sem pa to napisal na pamet, tako da je velika verjetnost, da iz prve ne bo delalo in bo potreben kakšen manjši popravek.
spremenjeno: podtalje (15.11.2017, 14:20)
|
| |
| |
Dela iz prve! Edino med stolpci se vrstica vpisuje v vsaki drugi stolpec kar pa me ne moti. Hvala ZELO si mi pomagal!
|
| |
Prikazujem 1 od skupno 1 strani |
|