- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我必须将两个选定的范围从两个不同的工作簿粘贴到邮件正文中。
第一个工作簿是宏所在的父工作簿。我们从那里选择一个范围,通过宏打开第二个工作簿并选择一个范围。
这两个范围都将粘贴到 Outlook 邮件正文中。
我尝试了以下宏以及 rangetohtml 函数。
Sub Mail_Selection_Range_Outlook_Body()
' You need to use this module with the RangetoHTML subroutine.
' Works in Excel 2000, Excel 2002, Excel 2003, Excel 2007, Excel 2010, Outlook 2000, Outlook 2002, Outlook 2003, Outlook 2007, and Outlook 2010.
Dim rng As Range
Dim rng2 As Range
Dim OutApp As Object
Dim OutMail As Object
Set Parent_wkb = ThisWorkbook
cnt_row = Parent_wkb.Worksheets("1Summary - All").Cells(Rows.Count, 1).End(xlUp).Row
cnt_col = Parent_wkb.Worksheets("1Summary - All").Cells(3, Columns.Count).End(xlToLeft).Column
l1 = cnt_row + 7
last_box = cnt_col - 2
last_box_Ltr = Evaluate("substitute(address(1, " & last_box & ", 4), ""1"", """")")
r1 = "B2:" & last_box_Ltr & l1
hide1 = cnt_col - 10
hide1_cell = Evaluate("substitute(address(1, " & hide1 & ", 4), ""1"", """")")
hide2 = cnt_col - 11
hide2_cell = Evaluate("substitute(address(1, " & hide2 & ", 4), ""1"", """")")
Worksheets("1Summary - All").Columns(hide2_cell & ":" & hide1_cell).Select
Selection.EntireColumn.Hidden = True
Set rng = Nothing
On Error Resume Next
' Only send the visible cells in the selection.
Set rng = Worksheets("1Summary - All").Range(r1).SpecialCells(xlCellTypeVisible)
' You can also use a range with the following statement.
' Set rng = Sheets("YourSheet").Range("D4:D12").SpecialCells(xlCellTypeVisible)
On Error GoTo 0
If rng Is Nothing Then
MsgBox "The selection is not a range or the sheet is protected. " & _
vbNewLine & "Please correct and try again.", vbOKOnly
Exit Sub
End If
With Application
.EnableEvents = False
.ScreenUpdating = False
End With
Set rng_dt = Worksheets("1Summary - All").Range("AGQ2")
dt = rng_dt.Cells(1, 1).Value
dt_formatted1 = Format(dt, "dd-MMMM-yyyy")
dt_formatted2 = Format(dt, "dd MMMM yyyy")
' folder = Mid(dt, 2, 4)
'open the global variable file to get the acu file name along with the file name to be attached
'Attach_xcl - an excel workbook to be attached (working fine)
'body_xcl - another excel workbook, from where I have to select the range
'both the workbook names along with their path are stored in this global variable file(working fine)
Set wkb1 = Workbooks.Open(Filename:="\\vfpnbrgspr0\LESR_Phase2_R_RPA\Sayan\Global_Variable_Singapore.xlsx")
Set rng_xcl1 = wkb1.Worksheets("Global_Variable").Range("B17")
Attach_xcl = rng_xcl1.Cells(1, 1).Value
Set rng_xcl2 = wkb1.Worksheets("Global_Variable").Range("B18")
Body_xcl = rng_xcl2.Cells(1, 1).Value
ActiveWorkbook.Close
'open the acu limit(Body_xcl) file for second table for mail body
Set wkb2 = Workbooks.Open(Filename:=Body_xcl)
Set rng2 = Nothing
On Error Resume Next
' Only send the visible cells in the selection.
Set rng2 = wkb2.Worksheets("Biz Breakdown").Range("body").SpecialCells(xlCellTypeVisible)
' You can also use a range with the following statement.
' Set rng = Sheets("YourSheet").Range("D4:D12").SpecialCells(xlCellTypeVisible)
On Error GoTo 0
If rng2 Is Nothing Then
MsgBox "The selection is not a range or the sheet is protected. " & _
vbNewLine & "Please correct and try again.", vbOKOnly
wkb2.Close
Exit Sub
End If
With Application
.EnableEvents = False
.ScreenUpdating = False
End With
wkb2.Close
'------------------------------PREPARE THE MAIL TO BE SENT---------------------------------------------'
Dim StrBody1 As String
' Build the string that you want to add.
StrBody1 = "Dear All," & "<br><br>" & _
"This is confidential." & "<br><br><br>"
Dim StrBody2 As String
' Build the string that you want to add.
StrBody2 = " " & "<br><br><br><br>" & _
"Thanks," & "<br>" & _
"user" & "<br>"
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
On Error Resume Next
With OutMail
' .To = "xxxx"
.To = "xxxx"
.CC = "xxxx"
.BCC = "xxxx"
.Subject = "This is confidential" & dt_formatted2
'THE LINE BELOW IS NOT WORKING, IF I WORK WITH 'rng' ITS WORKING FINE, WHEN I ADD THE SECOND 'rng2' THE BODY OF THE MAIL IS BLANK
.HTMLBody = StrBody1 & RangetoHTML(rng) & " " & RangetoHTML(rng2) & StrBody2
'.HTMLBody = RangetoHTML(rng2) & StrBody2
.Attachments.Add (Attach_xcl)
' In place of the following statement, you can use ".Display" to
' display the e-mail message.
.Send
End With
On Error GoTo 0
With Application
.EnableEvents = True
.ScreenUpdating = True
End With
Set OutMail = Nothing
Set OutApp = Nothing
Worksheets("1Summary - All").Columns(hide2_cell & ":" & hide2_cell).Select
Selection.EntireColumn.Hidden = False
Worksheets("1Summary - All").Columns(hide1_cell & ":" & hide1_cell).Select
Selection.EntireColumn.Hidden = False
End Sub
Function RangetoHTML(rng As Range)
' Works in Excel 2000, Excel 2002, Excel 2003, Excel 2007, Excel 2010, Outlook 2000, Outlook 2002, Outlook 2003, Outlook 2007, and Outlook 2010.
Dim fso As Object
Dim ts As Object
Dim TempFile As String
Dim TempWB As Workbook
TempFile = Environ$("temp") & "/" & Format(Now, "dd-mm-yy h-mm-ss") & ".htm"
' Copy the range and create a workbook to receive the data.
rng.Copy
Set TempWB = Workbooks.Add(1)
With TempWB.Sheets(1)
.Cells(1).PasteSpecial Paste:=8
.Cells(1).PasteSpecial xlPasteValues, , False, False
.Cells(1).PasteSpecial xlPasteFormats, , False, False
.Cells(1).Select
Application.CutCopyMode = False
On Error Resume Next
.DrawingObjects.Visible = True
.DrawingObjects.Delete
On Error GoTo 0
End With
' Publish the sheet to an .htm file.
With TempWB.PublishObjects.Add( _
SourceType:=xlSourceRange, _
Filename:=TempFile, _
Sheet:=TempWB.Sheets(1).Name, _
Source:=TempWB.Sheets(1).UsedRange.Address, _
HtmlType:=xlHtmlStatic)
.Publish (True)
End With
' Read all data from the .htm file into the RangetoHTML subroutine.
Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.GetFile(TempFile).OpenAsTextStream(1, -2)
RangetoHTML = ts.ReadAll
ts.Close
RangetoHTML = Replace(RangetoHTML, "align=center x:publishsource=", _
"align=left x:publishsource=")
' Close TempWB.
TempWB.Close savechanges:=False
' Delete the htm file.
Kill TempFile
Set ts = Nothing
Set fso = Nothing
Set TempWB = Nothing
End Function
最佳答案
您遇到的问题来自您关闭 wkb2
的事实。转换前rng2
到 html。当您到达 RangetoHTML(rng2)
线,rng2
不再可用,如果 wkb2
已经关了。
所以你应该转换 rng2
在您关闭 wkb2
之前,将其转换为 html 并将其存储在变量中.
你可以这样做:
If rng2 Is Nothing Then
MsgBox "The selection is not a range or the sheet is protected. " & _
vbNewLine & "Please correct and try again.", vbOKOnly
wkb2.Close
Exit Sub
Else
Dim HtmlRng2 as string
HtmlRng2 = RangeToHtml(rng2)
End If
.HTMLBody = StrBody1 & RangetoHTML(rng) & " " & RangetoHTML(rng2) & StrBody2
.HTMLBody = StrBody1 & RangetoHTML(rng) & " " & HtmlRng2 & StrBody2
wkb2
直到您填写了您的电子邮件
htmlbody
与范围。
关于excel - 将两个不同工作簿中的两个范围粘贴到 Outlook 邮件正文中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57881972/
我想在文本区域中向许多其他用户发送电子邮件。在名为内容的文本区域中,如果我键入星号包围的“用户”,我想让它们填写每个电子邮件的用户名(“@”之前的文本)。每封电子邮件中的每个用户名都会产生很多不同。然
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: Problem when loading php file into variable (Load resu
我正在从数据库中提取信息,并尝试将其作为电子邮件发送。将从数据库中拉取多行数据。这就是我的代码的样子... 所有的信息邮件都很好。我的问题是,我想保留中断。例如,在标题之后,我想中断一下,然后开始备
当我使用我们使用 java 邮件的门户发送 TEXT 电子邮件时没有问题,但是,当我选择放置 HTML 内容并发送电子邮件时,会引发以下警报。花了几个小时搜索但没有有用的答案! 谁能帮忙 电子邮件主题
我有这个类,它处理 gmail 的登录。无论我输入什么电子邮件和密码,程序都会返回 session 。我不明白如何在返回 session 对象之前检查登录是否成功。 package mailActio
我设置的短信作为文本文件附在信中。我不明白为什么会这样。 replied letter example public void sendEmail(MimeMessage message, Strin
所以我正在制作一个网络系统,这个想法是当用户关闭浏览器时它会向我发送一封电子邮件。目前,用户正在使用 Javascript Ajax 来让 PHP 更新数据库的当前时间。当时间超过 5 分钟时,我希望
我想发送邮件,当产品从之前、日期和之后过期时,在 php 中,我在 php 中使用了 datediff mysql 函数,但如果产品过期日期类似于 31-1-2012 ,则不同值是不适合我的编码,请帮
我正在尝试设置一个邮件脚本,该脚本将首先从 mysql 运行一个简单的选择,并在消息中使用这些数组变量。然而,所有的变量并没有输出到消息体,只有一行变量。这是我的脚本: $sql1 = "SE
我最近一直在努力研究这个问题。是否有我可以使用并添加到其中的 android API?我想为电子邮件应用程序制作一个插件,但我不想制作整个电子邮件应用程序。 我非常想要一些已经可以处理发送和接收电子邮
嗨 我有一个 PHP 西类牙文网站。在此邮件正文中包含一个主题“Solicitud de cotización”,但该主题出现在热门邮箱中,如 Solicitud de cotización 。但它在
我想写一个脚本,使用 php 自动向我的客户发送电子邮件 我如何自动发送它,例如,如果他们输入他们的电子邮件。然后点击提交 我想自动发送这封邮件 其次,我的主机上是否需要 smtp 服务器?我可以在任
今天早上我已经解决了一个问题: Java Mail, sending multiple attachments not working 这次我遇到了一个稍微复杂一点的问题:我想将附件和图片结合起来。
下面是用于连接 IMAP 文件夹并对其执行操作的代码。所以我的问题是关于 javax.mail.Session 的,在这种情况下它会每秒重新创建一次(取决于 checkInbox() 的 hibern
我正尝试按照 http://www.tutorialspoint.com/java/java_sending_email.htm 上的指南发送电子邮件 Java 应用程序 当我尝试运行它时,从上面的链
我有一个包含 2 列 email 和 id 的表格。我需要找到密切相关的电子邮件。例如: john.smith12@example.com 和 john.smith12@some.subdomains
首先是一些信息: Debian 压缩 PHP 5.3.3 带有 mod_cgi 的 PHP 在这种情况下,我绝对必须使用 mail()。对于我所有的其他项目,我已经使用 SMTP 邮件。 我已将站点超
在对电子邮件主机的联系表单进行故障排除时,他们告诉我在 php 邮件功能的发件人地址中使用“-f”。 “-f”标志的作用是什么?为什么它可以解决允许发送电子邮件的问题?我阅读了一些文档,但不是很清楚。
一个简单的问题:群发邮件哪个性能好? mail() 函数或sendmail 流行的 PHP 列表管理器包使用哪个? 最佳答案 嗯,mail() 函数并不适合批量发送电子邮件,因为它会为您发送的每封
我正在制作一个 PHP 表单,允许用户上传附件并将其发送到我的电子邮件。我一直在寻找很长一段时间才能做到。最后,我找到了这个。 http://www.shotdev.com/php/php-mail/
我是一名优秀的程序员,十分优秀!