如何使用Excel发送邮件? (3)

接下来,我们为新建的 Workbook 新增一个 Worksheet,用于写入数据:

Sub SayHello() ' 定义一个变量,用于引用新建的 Workbook Dim newWorkbook As Workbook ' 定义一个变量,用于引用新增的 Worksheet Dim newWorksheet As Worksheet ' 新增一个 Workbook,并引用 Set newWorkbook = Workbooks.Add On Error GoTo E ' 添加一个 Worksheet Set newWorksheet = newWorkbook.Sheets.Add On Error GoTo E ' 将新建的 Worksheet 命名为 'attachment' newWorksheet.Name = "attachment" ' 将新建的 Workbook 保存到 "D:\xx.xlsx" 路径。 ' 这里如果文件已存在,会提示是否覆盖. ' 路径要使用 '\' 进行目录隔离,使用'http://www.likecs.com/'会报错 newWorkbook.SaveAs ("D:\xx.xlsx") On Error GoTo Dispose Dispose: ' 最后,关闭新建的 Workbook。 newWorkbook.Close E: End Sub

在这里,我们主要是添加了一个工作表,并将工作包的名字命名为 'attachment',运行以上代码,我们看到在 D 盘下,生成了一个新文件 xx.xlsx,并且有一个工作表名字为 'attachment':

如何使用Excel发送邮件?

7. VBA如何将本Excel中的数据读出并写到另一个文件

至第6节为止,我们已经可以使用VBA创建一个Excel文件了,那么接下来,我们聊聊怎么向新增的文件中添加内容,将代码修改为如下:

Sub SayHello() ' 定义一个变量,用于引用新建的 Workbook Dim newWorkbook As Workbook ' 定义一个变量,用于引用新增的 Worksheet Dim newWorksheet As Worksheet ' 定义一个工作表引用,用于引用当前工作簿的 'datasource' 工作表 Dim srcWorksheet As Worksheet ' 分别定义数据源标题的 Range 和数据 Range,用于获取数据 Dim rgTitleSrc As Range Dim rgDataSrc As Range ' 分别定义目标标题的 Range 和数据 Range,用于写入数据 Dim rgTitleDest As Range Dim rgDataDest As Range ' 标记当前选中行 Dim selectedRow As Integer ' 新增一个 Workbook,并引用 Set newWorkbook = Workbooks.Add On Error GoTo E ' 添加一个 Worksheet Set newWorksheet = newWorkbook.Sheets.Add On Error GoTo Dispose ' 将新建的 Worksheet 命名为 'attachment' newWorksheet.Name = "attachment" ' 获取到当前工作簿的 'datasource' 工作表引用 Set srcWorksheet = ThisWorkbook.Worksheets("datasource") On Error GoTo Dispose ' 激活数据源工作表,以复制数据 srcWorksheet.Activate On Error GoTo Dispose ' 设置当前选中行 selectedRow = Selection.Row On Error GoTo Dispose ' 选中标题区域 title Set rgTitleSrc = srcWorksheet.Range("A1", "C1") On Error GoTo Dispose ' 选中数据区域,当前选中行 Set rgDataSrc = srcWorksheet.Range("A" & selectedRow, "C" & selectedRow) On Error GoTo Dispose With newWorksheet ' 复制数据源标题 rgTitleSrc.Copy ' 将复制内容粘贴到 A1 .Cells(1).PasteSpecial Paste:=8 .Cells(1).PasteSpecial xlPasteValues, , False, False .Cells(1).PasteSpecial xlPasteFormats, , False, False Application.CutCopyMode = False ' 复制数据源数据 rgDataSrc.Copy .Cells(2, "A").PasteSpecial Paste:=8 .Cells(2, "A").PasteSpecial xlPasteValues, , False, False .Cells(2, "A").PasteSpecial xlPasteFormats, , False, False ' 激活并选中目标工作表 newWorkbook.Activate newWorkbook.Sheets(newWorksheet.Index).Select '最终选中 A1 单元格 .Cells(1).Select On Error Resume Next .DrawingObjects.Visible = True .DrawingObjects.Delete On Error GoTo Dispose End With ' 将新建的 Workbook 保存到 "D:\xx.xlsx" 路径。 ' 这里如果文件已存在,会提示是否覆盖. ' 路径要使用 '\' 进行目录隔离,使用'http://www.likecs.com/'会报错 newWorkbook.SaveAs ("D:\xx.xlsx") On Error GoTo Dispose Dispose: ' 最后,关闭新建的 Workbook。 newWorkbook.Close E: End Sub

好了,让我们试试成果,按照如下步骤操作,看看有没有生成我们要的文件?

1. 选中我们源文件中要添加到目标文件数据的那一行的任何一个单元格,如下:

如何使用Excel发送邮件?

2.

如何使用Excel发送邮件?

可以看到,我们需要的数据已经放到目标文件中去了。怎么做到的呢?看看代码中以单引号开始的行吧,有说明

如何使用Excel发送邮件?


8. VBA如何生成并发送一个邮件?

到目前为止,虽然我们成功的生成了我们的目标文件,但是还没有关系到邮件发送。
本节,我们将详细讨论发送邮件的过程。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpzzzg.html