E-mail küldés VBA (tartalom probléma)

E-mail küldés VBA (tartalom probléma)
2020-01-07T15:47:18+01:00
2020-01-13T12:45:24+01:00
2022-10-15T21:16:21+02:00
3csoki1szazas
Sziasztok,

A probléma a következő: Van egy macro-m aminek a célja, hogy Outlook emailt generál az ActiveSheet-ről. Viszont a body-t ha megpróbálom megadni akkor azt kapom, hogy -1.

Köszönöm előre is a segítséget!

Ezt szeretném a body-ban látni:          

ActiveSheet.Range("E1", Range("E1").End(xlDown).End(xlToRight)).Copy
És így néz ki a macro:

Private Sub CommandButton1_Click() On Error GoTo ErrHandler ' SET Outlook APPLICATION OBJECT. Dim objOutlook As Object Set objOutlook = CreateObject("Outlook.Application") ' CREATE EMAIL OBJECT. Dim objEmail As Object Set objEmail = objOutlook.CreateItem(olMailItem) With objEmail .to = "abcde@abc.com" .Subject = "This is a test message from Lajos" .Body = "HI" '-----ez a rész a problémás .Display ' DISPLAY MESSAGE. End With ' CLEAR. Set objEmail = Nothing: Set objOutlook = Nothing ErrHandler: End Sub
Mutasd a teljes hozzászólást!
Szia!

Az Outlook.MailItem Body tulajdonsága szöveget vár, tehát a cellatartalmakat szöveggé kell konvertálnod, hogy elhelyezhesd a levélben.
Az 

ActiveSheet.Range("E1", Range("E1").End(xlDown).End(xlToRight)).Copy

csak annyit csinál, hogy a vágólapra helyezi az adott cellák tartalmát.
E helyett egy szöveges változóba kell beolvasnod a tartalmat.
Pl. 

For Each cl In ActiveSheet.Range("E1", Range("E1").End(xlDown).End(xlToRight)).Cells szoveg=szoveg & "," & cl.Value Next
Ezután már a szoveg változót hozzá tudod rendelni a Body tulajdonsághoz.

Üdv.
Mutasd a teljes hozzászólást!

Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd