论文部分内容阅读
一个特殊的电子表格,这个表格中的每一行都保存着一位客户的详细资料。希望能够直接从这个表格中提取数据,以便使用Outlook Express给客户发送个性化的电子邮件。有许多方法可以实现这一功能,这里只介绍一下Excel为用户提供的电子邮件工具。
我们假设客户列表包括以下项目:客户编号(Customer No.)、姓氏(Surname)、名字(First Name)、城市(Town)和爱好(Hobby),与之对应的Excel列依次为A、B、C、D、E,如图1所示。在这个例子中,一共包含五组信息,目前已有12位客户的资料记录在案。选中A2:E13的矩形区域,在“编辑栏”左侧的“名称框”中输入区域名称“List”。
接着,点击新的标签以打开一个未被使用的工作表,用来输入准备发送的电子邮件内容。在输入内容之前,先选择“工具”菜单中的“选项”,将“视图”这一标签页中“网格线”复选框的对勾去掉,这么做可以令你的电子邮件看起来不那么像一份电子表格。
在本例中,电子邮件的内容是一则大减价广告,如图2所示。电子邮件中的文字信息存放于像C1这样的单元格中,格式设置为左对齐。
在发送电子邮件之前,可以将客户编号输入到单元格B25中。将编号设置成白色字体,这样一来,这些文字即使被发送了,也不会显示出来干扰收件人的阅读。在本例中,作者输入了客户编号1。
单元格C3包含如下函数:
=CONCATENATE(“Supersaver Sale,”,VLOOKUP($B$25,List,3,FALSE))
其中,CONCATENATE函数通常用于将多个文本字符串合并为一个,不过,从本例中你会发现它还可以用于连接由函数计算得出的字符串。虽然该数据从另一个工作表中提取,不过,“List”这一区域名称在整个Excel文档均可以使用,换句话说,在这个文档中,“List”是一个唯一的名称。客户编号1这一信息来自于电子邮件内容工作表的单元格B25,VLOOKUP函数从“List”区域的第3列中找到了客户编号为1的客户名:Sam,该函数中的第四个参数FALSE则表示在进行查找的时候只需大致匹配即可,不必严格区分查找的结果是字符或是数字。
单元格C5也是一个公式,具体内容如下:
=CONCATENATE(“and only in”,VLOOKUP($B$25,List,4,FALSE))
由此公式,我们能够得到客户所在城镇的信息。
单元格C7的公式则为:
=CONCATENATE(“including many bargains for”,VLOOKUP($B$25,List,5,FALSE),”s”)
用于提取客户的爱好,由于是复数形式,还要添加一个“s”。
单元格C13的公式如下:
=CONCATENATE(“In addition this coupon entitles,” ,VLOOKUP($B$25,List,3,FALSE), “ ”,VLOOKUP($B$25,List,2,FALSE))
这个公式同时提取了First name和Surname两列中的字符串,并且在这两个字符串之间加入了一个空格。
单元格C9,C11和C15是纯文本内容,行与行之间均空一行。
客户的电子邮件地址最好保存在其它位置,比如你的Outlook Express或Windows Address Book中。如果要给1号客户发送电子邮件,我们首先点击位于Excel常用工具栏上的“电子邮件”按钮,可以生成一个标准的电子邮件发送界面,其中“发件人”一栏会自动显示你自己的电子邮件地址,“主题”一栏则显示的是此Excel文件的文件名称。也正因为如此,我们建议在保存Excel文件的时候最好使用你所要发送电子邮件的题目。拿本例来说明的话,我们就可以将Excel文件命名为“Upcoming Sale”,而不是叫什么“Emailform”之类的名字。而后,可以直接点击“收件人”按钮,从你的联系人列表中选择目标联系人,最后点击“发送该工作表”按钮将这封电子邮件成功发送出去。
如果我们再回到写有邮件内容的那张工作表中,将单元格B25中的数字改为2,电子邮件内容中有关客户名字、所在地和爱好的信息就会自动更新。如此一来,就可以仿照之前的操作顺序发送第二封电子邮件了。
当然,如果你的客户数量不大的话,这么操作几次倒也无妨,可是如果有数百个客户的话,再这么操作就显得有些单调且繁琐了,而一个宏命令就可以完成这一重复性的工作。这期我们只留下一个提示,那就是Excel所带的VBA中有一个Sendmail的方法可以打开Outlook Express,希望亲爱的读者您能够帮助我们来完成这个宏。
Excel中的排序问题
有不少读者问起Excel中的排序问题,今天我们就来讲解其中的两种情况:按字母顺序和按数序排列。
其一,如图3所示,工作表标签从左到右依次为Leaders,Sheet2,Headings,Sheet1和Another。利用下面这个宏,我们可以将工作表的顺序调整为Another,Headings,Leaders,Sheet1和Sheet2。这个宏适用于那些含有大量工作表、而又无序排列的Excel文件,可以将标签名依字母顺序或数序排列。
Sub SortSheets()
Dim a As Integer, b As Integer, x As Integer
x = Sheets.Count
On Error GoTo Trap:
For a = 1 To x - 1
For b = a + 1 To x
If Sheets(b).Name < Sheets(a).Name Then
Sheets(b).Move Before:=Sheets(a)
End If
Next
Next
Sheets(1).Select
Trap:
End Sub
其二,如图4所示,我们可以利用一个自定义函数将一个单元格中的文本倒序显示,哪怕是整个句子也行。当然这不会生成类似镜面的效果,因为它无法将字母的样式翻转,但刚好可以用来快速地生成密码。首先,创建ReverseText函数,具体内容如下:
Function ReverseText(text) As String
Dim TextLen As Integer
Dim i As Integer
TextLen = Len(text)
For i = TextLen To 1 Step -1
ReverseText = ReverseText & Mid(text, i, 1)
Next i
End Function
将要翻转的文本输入到单元格B2之中,而后在另外一个单元格中输入:
=ReverseText(B2)
有两种方法可以满足你随时使用这两个宏的需求:其一是当你在制作其它文档的时候打开一个包含这些宏的Excel文档;另外一个方法则是将这些宏保存到XLStart文件夹下名为“个人宏工作簿”的文件中,这个操作在Excle的提示下轻而易举。
具体操作如下:打开一个新的Excel文档,点击“工具”一栏中的“宏”选项,选择“录制新宏”,在“宏名”一栏中敲入任意的名字来为你的宏命名,然后在“保存在”一栏的下拉菜单中选择“个人宏工作簿”,点击“确定”按钮,再点击方形的停止按钮停止录制新宏。关闭Excel文件,点击“确定”来保存你的“个人宏工作簿”。
现在,当你在打开任意一个Excel文件的时候,在VBA编辑器左侧的面板上就有了已存储宏的列表,这也就意味着你可以在任意一个文档中使用全部的宏命令了。
使用视图特性
在上一期中我们介绍了使用方案管理特性编辑表格的技巧。Excel中与之相关的特性还有两个,它们是视图管理器和报告管理器,本期我们介绍视图管理器。
当要将某份电子表格传给别人时,如果有指定需要对方观看的区域或者打印区域的需要,那么你很快就会发现视图特性非常有用。使用自定义视图功能就可以指定活动工作表以及标明选中的单元格。你首先要调节列宽、行高,以及规定是否显示某一行或某一列,还可以设置缩放比例—当然在设定这项的时候你还应该考虑到将来查看这个视图的显示器分辨率。
然后你还可以打开“工具”|“选项”,在“视图”标签页可以选择是否显示0值、工作表标签或行号列标等项目。其它需要设置的项目还有窗口细节—包括尺寸、位置以及排列方式(平铺、水平并排、垂直并排或层叠)。视图还将保存文件的组及分级设置、筛选(包括自动筛选和高级筛选)设置以及打印设置(包括已定义的打印区域)。
做完这些设定工作以后,只需打开“视图”菜单下的“视图管理器”,单击“添加”按钮,再为你的自定义视图起个名字。需要时就可以任意调用这个视图了。或者在VBA编辑器的ThisWorkbook文件夹下保存下边这个宏指令:
Private Sub Workbook_Open()
ActiveWorkbook. customViews (“View name”).Show
End Sub
这样也可以让文件在打开时显示自定义视图。
我们假设客户列表包括以下项目:客户编号(Customer No.)、姓氏(Surname)、名字(First Name)、城市(Town)和爱好(Hobby),与之对应的Excel列依次为A、B、C、D、E,如图1所示。在这个例子中,一共包含五组信息,目前已有12位客户的资料记录在案。选中A2:E13的矩形区域,在“编辑栏”左侧的“名称框”中输入区域名称“List”。
接着,点击新的标签以打开一个未被使用的工作表,用来输入准备发送的电子邮件内容。在输入内容之前,先选择“工具”菜单中的“选项”,将“视图”这一标签页中“网格线”复选框的对勾去掉,这么做可以令你的电子邮件看起来不那么像一份电子表格。
在本例中,电子邮件的内容是一则大减价广告,如图2所示。电子邮件中的文字信息存放于像C1这样的单元格中,格式设置为左对齐。
在发送电子邮件之前,可以将客户编号输入到单元格B25中。将编号设置成白色字体,这样一来,这些文字即使被发送了,也不会显示出来干扰收件人的阅读。在本例中,作者输入了客户编号1。
单元格C3包含如下函数:
=CONCATENATE(“Supersaver Sale,”,VLOOKUP($B$25,List,3,FALSE))
其中,CONCATENATE函数通常用于将多个文本字符串合并为一个,不过,从本例中你会发现它还可以用于连接由函数计算得出的字符串。虽然该数据从另一个工作表中提取,不过,“List”这一区域名称在整个Excel文档均可以使用,换句话说,在这个文档中,“List”是一个唯一的名称。客户编号1这一信息来自于电子邮件内容工作表的单元格B25,VLOOKUP函数从“List”区域的第3列中找到了客户编号为1的客户名:Sam,该函数中的第四个参数FALSE则表示在进行查找的时候只需大致匹配即可,不必严格区分查找的结果是字符或是数字。
单元格C5也是一个公式,具体内容如下:
=CONCATENATE(“and only in”,VLOOKUP($B$25,List,4,FALSE))
由此公式,我们能够得到客户所在城镇的信息。
单元格C7的公式则为:
=CONCATENATE(“including many bargains for”,VLOOKUP($B$25,List,5,FALSE),”s”)
用于提取客户的爱好,由于是复数形式,还要添加一个“s”。
单元格C13的公式如下:
=CONCATENATE(“In addition this coupon entitles,” ,VLOOKUP($B$25,List,3,FALSE), “ ”,VLOOKUP($B$25,List,2,FALSE))
这个公式同时提取了First name和Surname两列中的字符串,并且在这两个字符串之间加入了一个空格。
单元格C9,C11和C15是纯文本内容,行与行之间均空一行。
客户的电子邮件地址最好保存在其它位置,比如你的Outlook Express或Windows Address Book中。如果要给1号客户发送电子邮件,我们首先点击位于Excel常用工具栏上的“电子邮件”按钮,可以生成一个标准的电子邮件发送界面,其中“发件人”一栏会自动显示你自己的电子邮件地址,“主题”一栏则显示的是此Excel文件的文件名称。也正因为如此,我们建议在保存Excel文件的时候最好使用你所要发送电子邮件的题目。拿本例来说明的话,我们就可以将Excel文件命名为“Upcoming Sale”,而不是叫什么“Emailform”之类的名字。而后,可以直接点击“收件人”按钮,从你的联系人列表中选择目标联系人,最后点击“发送该工作表”按钮将这封电子邮件成功发送出去。
如果我们再回到写有邮件内容的那张工作表中,将单元格B25中的数字改为2,电子邮件内容中有关客户名字、所在地和爱好的信息就会自动更新。如此一来,就可以仿照之前的操作顺序发送第二封电子邮件了。
当然,如果你的客户数量不大的话,这么操作几次倒也无妨,可是如果有数百个客户的话,再这么操作就显得有些单调且繁琐了,而一个宏命令就可以完成这一重复性的工作。这期我们只留下一个提示,那就是Excel所带的VBA中有一个Sendmail的方法可以打开Outlook Express,希望亲爱的读者您能够帮助我们来完成这个宏。
Excel中的排序问题
有不少读者问起Excel中的排序问题,今天我们就来讲解其中的两种情况:按字母顺序和按数序排列。
其一,如图3所示,工作表标签从左到右依次为Leaders,Sheet2,Headings,Sheet1和Another。利用下面这个宏,我们可以将工作表的顺序调整为Another,Headings,Leaders,Sheet1和Sheet2。这个宏适用于那些含有大量工作表、而又无序排列的Excel文件,可以将标签名依字母顺序或数序排列。
Sub SortSheets()
Dim a As Integer, b As Integer, x As Integer
x = Sheets.Count
On Error GoTo Trap:
For a = 1 To x - 1
For b = a + 1 To x
If Sheets(b).Name < Sheets(a).Name Then
Sheets(b).Move Before:=Sheets(a)
End If
Next
Next
Sheets(1).Select
Trap:
End Sub
其二,如图4所示,我们可以利用一个自定义函数将一个单元格中的文本倒序显示,哪怕是整个句子也行。当然这不会生成类似镜面的效果,因为它无法将字母的样式翻转,但刚好可以用来快速地生成密码。首先,创建ReverseText函数,具体内容如下:
Function ReverseText(text) As String
Dim TextLen As Integer
Dim i As Integer
TextLen = Len(text)
For i = TextLen To 1 Step -1
ReverseText = ReverseText & Mid(text, i, 1)
Next i
End Function
将要翻转的文本输入到单元格B2之中,而后在另外一个单元格中输入:
=ReverseText(B2)
有两种方法可以满足你随时使用这两个宏的需求:其一是当你在制作其它文档的时候打开一个包含这些宏的Excel文档;另外一个方法则是将这些宏保存到XLStart文件夹下名为“个人宏工作簿”的文件中,这个操作在Excle的提示下轻而易举。
具体操作如下:打开一个新的Excel文档,点击“工具”一栏中的“宏”选项,选择“录制新宏”,在“宏名”一栏中敲入任意的名字来为你的宏命名,然后在“保存在”一栏的下拉菜单中选择“个人宏工作簿”,点击“确定”按钮,再点击方形的停止按钮停止录制新宏。关闭Excel文件,点击“确定”来保存你的“个人宏工作簿”。
现在,当你在打开任意一个Excel文件的时候,在VBA编辑器左侧的面板上就有了已存储宏的列表,这也就意味着你可以在任意一个文档中使用全部的宏命令了。
使用视图特性
在上一期中我们介绍了使用方案管理特性编辑表格的技巧。Excel中与之相关的特性还有两个,它们是视图管理器和报告管理器,本期我们介绍视图管理器。
当要将某份电子表格传给别人时,如果有指定需要对方观看的区域或者打印区域的需要,那么你很快就会发现视图特性非常有用。使用自定义视图功能就可以指定活动工作表以及标明选中的单元格。你首先要调节列宽、行高,以及规定是否显示某一行或某一列,还可以设置缩放比例—当然在设定这项的时候你还应该考虑到将来查看这个视图的显示器分辨率。
然后你还可以打开“工具”|“选项”,在“视图”标签页可以选择是否显示0值、工作表标签或行号列标等项目。其它需要设置的项目还有窗口细节—包括尺寸、位置以及排列方式(平铺、水平并排、垂直并排或层叠)。视图还将保存文件的组及分级设置、筛选(包括自动筛选和高级筛选)设置以及打印设置(包括已定义的打印区域)。
做完这些设定工作以后,只需打开“视图”菜单下的“视图管理器”,单击“添加”按钮,再为你的自定义视图起个名字。需要时就可以任意调用这个视图了。或者在VBA编辑器的ThisWorkbook文件夹下保存下边这个宏指令:
Private Sub Workbook_Open()
ActiveWorkbook. customViews (“View name”).Show
End Sub
这样也可以让文件在打开时显示自定义视图。