Scrivere l'intervallo da Excel a corpo di Outlook

Ho bisogno di prendere una gamma da Excel e farlo incollare in un messaggio di posta elettronica di Outlook. Il problema è quando faccio questo solo incolla il text e non il tavolo. Di seguito è il codice. Ho provato l'image, ma non voglio whererlo incorporarlo, non capisco perché non sia sufficiente incollarlo come each altra volta che copi un'image. Sto lavorando con Office 2013.

Private Sub btnSubmit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSubmit.Click Dim objexcel As New Excel.Application Dim objWorkbook As Excel.Workbook Dim objWorksheet As Excel.Worksheet Dim Range As Excel.Range objexcel.DisplayAlerts = False objWorkbook = objexcel.Workbooks.Open("c://Derp") objWorksheet = CType(objWorkbook.Worksheets.Item("Sheet1"), Excel.Worksheet) objWorksheet.Unprotect() objWorksheet.Cells(2, 1).value = txtTravEmails.Text objWorksheet.Cells(2, 4).value = Txttravemdate.Text objWorksheet.Cells(3, 1).value = txtTravUnread.Text objWorksheet.Cells(3, 4).value = Txttravundate.Text objWorksheet.Cells(6, 1).value = txtITweb.Text objWorksheet.Cells(6, 4).value = Txtwebdate.Text objWorksheet.Cells(7, 1).value = txtITAPI.Text objWorksheet.Cells(7, 4).value = Txtapidate.Text objWorksheet.Cells(8, 1).value = txtITpend.Text objWorksheet.Cells(8, 4).value = Txtpenddate.Text 'objWorksheet.Range("A1:D9").CopyPicture() Range = objWorksheet.Range("A1:D9") Range.Copy() If Chkmorning.Checked = True Then Dim Email As New Email_Templates Email.Morning() ElseIf Chkmid.Checked = True Then Dim Email As New Email_Templates Email.Mid() ElseIf Chkevening.Checked = True Then Dim Email As New Email_Templates Email.Evening() ElseIf Chkmidnight.Checked = True Then Dim Email As New Email_Templates Email.Midnight() End If objWorkbook.Save() objWorkbook.Close() objexcel.Quit() End Sub Public Sub Morning() Dim Morning As String = "<html>" + "<HEAD>" + "<TITLE>Email</TITLE>" + "</HEAD>" + "<BODY>" + "<font face=Calibri>" + "<b> This is the morning report sent at " + DateAndTime.Now.ToShortTimeString + " EST! " + "<br><br>" + Clipboard.GetText + "</font>" + "</BODY>" + "</HTML>" mail.Recipients.Add("[email protected]") mail.BCC = "" mail.Subject = Date.Now.ToShortDateString mail.HTMLBody = Morning 'mail.Body = "This is the morning report sent at " & DateAndTime.Now.ToShortTimeString & " EST!" & vbNewLine & Clipboard.GetText mail.Display() End Sub 

Devi passare il formato che desideri dai dati degli appunti.

 Dim Morning As String = "<html>" + "<HEAD>" + "<TITLE>Email</TITLE>" + "</HEAD>" + "<BODY>" + "<font face=Calibri>" + "<b> This is the morning report sent at " + DateAndTime.Now.ToShortTimeString + " EST! " + "<br><br>" + Clipboard.GetText(TextDataFormat.Html) + "</font>" + "</BODY>" + "</HTML>" 

Il metodo Clipboard.GetText ha un parametro di formato opzionale utilizzando le costanti di TextDataFormat .

Aggiunta la seguente per il sub giorno del mattino

 Dim Report As String Report = Clipboard.GetText(TextDataFormat.Html) Report = Report.Substring(Report.IndexOf("<html")) 

e cambiato

 mail.HTMLBody = Midnight & Report 

Rimosso le informazioni sourceurl prima della tabella incollata