将Excel按选定范围复制到Outlook

我想复制Sheet“PUCCH”中的excel内容,并select范围“A1到G5”来查看vbs脚本。

Line in中有错误。 HTMLBody和错误显示types不匹配:

Set outlook = CreateObject("Outlook.Application") Set email = outlook.CreateItem(0) Set xlApp = CreateObject("Excel.Application") Set xlBook = xlApp.Workbooks.Open("X:\d\PCCW\realtime_MTR\PUCCH_level.XLSX") Set xlSht = xlBook.Sheets("PUCCH") Set objExcel = CreateObject("Excel.Application") Set objWorkbook =objExcel.Workbooks.Open("X:\d\PCCW\realtime_MTR\PUCCH_level.XLSX") Set objWorksheet = objWorkbook.Worksheets("PUCCH") objWorksheet.Activate With email '.to="Email;" .to="Email;" .Subject="Houly MTR Alerter" .HTMLBody= "PUCCH:<br>" & objWorksheet.Range("A1:G5") .Send End With Wscript. quit 

任何人都可以更正.Range()中的.HTMLBody? 谢谢。

您正尝试将范围本身复制到电子邮件中,而不是先读取值并将其插入到您的电子邮件中。 根据这些单元格的格式,你可以尝试这样的事情

 Dim sRangeValues as String Dim r as Range Set outlook = CreateObject("Outlook.Application") Set email = outlook.CreateItem(0) Set xlApp = CreateObject("Excel.Application") Set xlBook = xlApp.Workbooks.Open("X:\d\PCCW\realtime_MTR\PUCCH_level.XLSX") Set xlSht = xlBook.Sheets("PUCCH") Set objExcel = CreateObject("Excel.Application") Set objWorkbook =objExcel.Workbooks.Open("X:\d\PCCW\realtime_MTR\PUCCH_level.XLSX") Set objWorksheet = objWorkbook.Worksheets("PUCCH") objWorksheet.Activate set r = objWorksheet.Range("A1:G5") For i = 1 To r.Rows.Count For j = 1 To r.Rows(i).Columns.Count sRangeValues = sRangeValues & r.Rows(i).Columns(j).Value & "|" Next sRangeValues = sRangeValues & Chr(10) Next With email '.to="Email;" .to="Email;" .Subject="Houly MTR Alerter" .HTMLBody= "PUCCH:<br>" & sRangeValues .Send End With Wscript. quit