本文是对之前的关于邮件合并的文章的补充。
之前文章介绍的方法,一个比较让人不满意的地方在于邮件的正文只能是无格式的纯文本,无法满足一部分人的需求。这里主要介绍如何修改之前的vba代码来实现html格式的邮件正文。
准备工作和基本的步骤请参考之前的文章。下面是修改后的vba代码,我把修改了的部分用红颜色标示出来了。
Sub eMailMergeWithAttachments()
Dim docSource As Document, docMaillist As
Document, docTempDoc As Document
Dim rngDatarange As Range
Dim i As Long, j As Long
Dim lSectionsCount As Long
Dim bStarted As Boolean
Dim oOutlookApp As Outlook.Application
Dim oItem As Outlook.MailItem
&nb
使用FIND函数,可以查找某一个字符在一个字符串中第一次出现的位置。但是,这个查找的方向是从左往右的。有时候,我们需要从右往左进行查找。典型的情况是在一个完整的路径中(路径+文件名)查找最后一个“\”的位置,以便确认其中的文件名是什么。
然而,Excel中似乎没有相对应的函数。因此,只能采用比较曲折的方法来达到目的。
下图中:

为了计算一个产品的体积,需要把一个产品的长、宽、高区分出来。
在B2中输入:=LEFT(A2,FIND('x',A2)-1)
在C2中输入:=MID(A2,FIND('x',A2)+1,FIND('x',SUBSTITUTE(A2,'x','-',1))-FIND('x',A2)-1)
在D2中输入:=RIGHT(A2,LEN(A2)-FIND('x',SUBSTITUTE(A2,'x','-',1)))
思路是:
1)先找出第一个x
我自己设计了一个插入图片,并自动根据单元格的大小改变图片大小的vba。程序中使用的是:ActiveSheet.Pictures.Insert(stPicName).Select
这个语句。
这个程序在2003以及2007(我忘记是否2007有测试过了)时是没有问题的,也就是说,插入图片后的表格,即使保存到其它电脑(或者将原来的图片删掉),图片还是能够打开。
但是当运行在2010时,却发现插入的并不是图片本身,而只是图片的链接。换句话说,如果把原来的图片删掉,或者把表格保存到其它电脑,图片就无法显示。
经过不断的实践和google,终于比较完美的解决了问题。现将方法记录如下。
1. 如果一定要使用Pictures.Insert这个语句,就只能在插入图片后,使用cut把图片剪切,然后再使用paste粘贴图片。这样子,图片便嵌入到了excel表格中。但是,使用paste之后,可能需要重新定位图片的位置。
2.
使用Shapes.AddPicture这个方法。然而,使用这个方法有一个