文章目录
更新目录
方式一:
点目录中任何位置,按f9即可。
方式二:
目录上右键 | 更新域,选:
只更新页码
更新整个目录
也是可以实现更新的。
复制为表格数据?
很多时候我们有这样的需求,文本或ai生成的内容可以直接复制到表格中。
1、excel的数据 # 可以
2、其他word的表格 # 整个可以,复制几行可能不行
3、ai生成的markdown表格 # 直接复制到表格是不行的
这里有个技巧,既然直接到word有时不行,但是到excel大多都可以,那么转一道,先excel再word,兼容性就比较强了。
也就是 内容->excel->word。
邮件合并(模板套用)
1、新建邮件合并.docx,输入内容:
接口名称:
请求地址:
请求方式:
2、新建接口列表.xlsx,内容为:
接口名称 请求地址 请求方式
接口1 http://www.baidu.com POST
接口2 http://www.ali.com POST
3、邮件 | 开始邮件合并 | 普通word文档(这里根据实际需要进行选择)。
注:开始邮件合并必须点,否则不知道使用什么模板。
4、邮件 | 选择收件人 | 使用现有列表,选中接口列表.xlsx。
5、打开开发工具,然后 开发工具 | 点 visual basic | normal上右键 | 插入 | 模块,代码如下:
basic
Sub MailMergeSplitSingleDoc()
Dim mainDoc As Document
Dim newDoc As Document
Dim recTotal As Long, i As Long
Dim saveFolder As String
Dim fileName As String
Dim targetField As Variant
'===================== 修改这里 =====================
saveFolder = "D:\word\" '输出文件夹,末尾必须带\
Dim nameField As String
nameField = "接口名称" '当前Excel表头第一列,用来当文件名
'======================================================
Set mainDoc = ActiveDocument
'判断是否绑定数据源
If mainDoc.MailMerge.DataSource Is Nothing Then
MsgBox "错误:当前文档未绑定邮件合并数据源!", vbCritical
Exit Sub
End If
'校验字段是否存在
On Error Resume Next
targetField = mainDoc.MailMerge.DataSource.DataFields(nameField).Value
On Error GoTo 0
If IsEmpty(targetField) Then
MsgBox "错误:数据源不存在字段【" & nameField & "】,核对Excel表头!", vbCritical
Exit Sub
End If
'校验有效数据行数
recTotal = mainDoc.MailMerge.DataSource.RecordCount
If recTotal < 1 Then
MsgBox "错误:数据源未读取到有效数据(记录数=" & recTotal & "),请重新绑定Excel!", vbCritical
Exit Sub
End If
Application.ScreenUpdating = False
Application.DisplayAlerts = wdAlertsNone
For i = 1 To recTotal
mainDoc.MailMerge.DataSource.ActiveRecord = i
With mainDoc.MailMerge
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
.Execute Pause:=False
End With
Set newDoc = ActiveDocument
'读取Excel「接口名称」列作为文件名
fileName = Trim(mainDoc.MailMerge.DataSource.DataFields(nameField).Value)
'清理文件名非法字符
fileName = Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(fileName, "\", ""), "/", ""), ":", ""), "*", ""), "?", ""), """", ""), "<", ""), ">", ""), "|", ""), " ", "")
'不存在文件夹则自动创建
If Dir(saveFolder, vbDirectory) = "" Then
MkDir saveFolder
End If
newDoc.SaveAs2 fileName:=saveFolder & fileName & ".docx", FileFormat:=wdFormatXMLDocument
newDoc.Close wdDoNotSaveChanges
Next i
Application.ScreenUpdating = True
Application.DisplayAlerts = wdAlertsAll
MsgBox "批量拆分完成!共生成 " & recTotal & " 份接口文档,路径:" & saveFolder, vbInformation
End Sub
按f5即可执行,在d:/word下生成接口1、接口2两个文档,内容也套用了模板的内容即为成功。
模板中的字段要使用导入合并域
注:千万不要手敲,例如手敲《接口名称》,这里的双书名号和插入合并域的符号不一样。
《》 # 这个是手敲的,不对
<< >> # 是邮件合并专用的字段标记,这个对
运行宏的方法
1、f5
2、点运行图标(向右的绿色小箭头)