Word排班检查表实现按日期与内容自动命名导出PDF功能求助
实现步骤
1. 插入「提交表单」ActiveX按钮
操作步骤如下:
- 打开目标Word排班检查表,点击顶部「开发工具」选项卡(如果没显示,可在文件→选项→自定义功能区里勾选开发工具)
- 点击「插入」→「ActiveX控件」组里的「命令按钮(ActiveX控件)」,在文档合适位置拖拽画出按钮
- 右键按钮选择「属性」,在弹出的属性面板里找到
Caption项,修改为「提交表单」,可同时调整字体、按钮大小适配文档样式 - 点击「开发工具」选项卡下的「设计模式」按钮退出设计状态,按钮即可正常点击
2. 完整VBA实现代码
右键刚才插入的「提交表单」按钮,选择「查看代码」,将自动生成的默认代码全部替换为以下内容:
Sub 提交表单_Click() ' 配置项:请修改为你实际的共享盘存储路径,末尾保留反斜杠 Const SHARED_DRIVE_PATH As String = "Z:\共享文件夹\排班检查表存档\" Dim scheduleDate As String, scheduleName As String Dim fileName As String, fullPath As String Dim cc As ContentControl ' 读取内容控件取值 On Error Resume Next For Each cc In ThisDocument.ContentControls ' 请根据你自己的内容控件标题修改引号内的内容 If cc.Title = "排班日期" Then ' 格式化日期为YYYY-MM-DD避免文件名非法字符 scheduleDate = Format(cc.Range.Text, "YYYY-MM-DD") End If If cc.Title = "排班名称" Then ' 替换排班名称里的非法文件名字符 scheduleName = Replace(Replace(cc.Range.Text, "/", "-"), "\", "-") scheduleName = Replace(Replace(scheduleName, ":", ":"), "*", "") scheduleName = Replace(Replace(scheduleName, "?", ""), """", "") scheduleName = Replace(Replace(scheduleName, "<", "("), ">", ")") scheduleName = Replace(scheduleName, "|", "-") End If Next On Error GoTo 0 ' 处理空值避免命名错误 If scheduleDate = "" Then scheduleDate = "未填写日期" If scheduleName = "" Then scheduleName = "未填写排班名称" ' 拼接最终文件名和完整路径 fileName = "Checklist " & scheduleDate & " " & scheduleName & ".pdf" fullPath = SHARED_DRIVE_PATH & fileName ' 导出PDF并自动打开 ActiveDocument.ExportAsFixedFormat _ OutputFileName:=fullPath, _ ExportFormat:=wdExportFormatPDF, _ OpenAfterExport:=True, _ OptimizeFor:=wdExportOptimizeForPrint, _ Range:=wdExportAllDocument, _ Item:=wdExportDocumentContent, _ IncludeDocProps:=True, _ KeepIRM:=True, _ CreateBookmarks:=wdExportCreateNoBookmarks, _ DocStructureTags:=True, _ BitmapMissingFonts:=True, _ UseISO19005_1:=False ' 可选:导出成功提示,不需要可以删掉下面一行 MsgBox "表单提交成功,PDF已自动打开确认", vbInformation, "操作完成" End Sub
3. 配置&使用说明
- 路径修改:把代码开头
SHARED_DRIVE_PATH后面引号内的路径替换为你的实际共享盘路径即可,无需修改其他代码 - 控件匹配:如果你的日期选择器、下拉列表的标题不是「排班日期」「排班名称」,右键对应内容控件选「属性」即可查看控件标题,把代码里对应判断条件里的标题内容改成你自己的即可
- 文档保存:完成配置后,需要把文档另存为「Word 启用宏的文档(*.docm)」格式,后续员工打开时点击顶部的「启用内容」按钮即可正常使用提交功能,全程只需要填完内容点提交按钮即可,无需其他操作
内容的提问来源于stack exchange,提问作者DJ EBITDAM
相关产品推荐
相关产品推荐

