ARTICLE · 1311273
手把手从0搭建自己的Excel自动计算表(4)丨自动填写WORD计算书里的公司名

一、功能说明
自动遍历当前 Word 文档里所有表格; 模糊匹配单元格文字,只要单元格包含 “ 计算单位”就识别;定位到该单元格右侧相邻单元格; 自动清除 Word 单元格自带的特殊结束符号、首尾空格; - 只在右侧单元格为空的时候填充公司名
,原有内容不会被覆盖; 自带异常容错:遇到合并单元格、表格最后一列(没有下一格)不会直接报错; 运行结束弹出提示框,告知执行完成。
Sub FillCompanyName()
Dim tbl As Table
Dim r As Row
Dim c As Cell
Dim nextCell As Cell
Dim cellText As String
Dim targetCompanyName As String
' ==========================================
' 在这里修改为你指定的公司名称
targetCompanyName = "ABCDEF有限公司"
' ==========================================
For Each tbl In ActiveDocument.Tables
For Each r In tbl.Rows
For Each c In r.Cells
If InStr(1, c.Range.Text, "计算单位", vbTextCompare) > 0 Then
On Error Resume Next
Set nextCell = c.Next
On Error GoTo 0
If Not nextCell Is Nothing Then
cellText = nextCell.Range.Text
cellText = Replace(cellText, Chr(13) & Chr(7), "")
cellText = Replace(cellText, Chr(7), "")
cellText = Trim(cellText)
If cellText = "" Then
nextCell.Range.Text = targetCompanyName
End If
End If
Set nextCell = Nothing
End If
Next c
Next r
Next tbl
MsgBox "OK啦!已填充完成!", vbInformation, "提示"
End Sub
三、详细操作步骤
步骤 1:打开 VBA 编辑器
在 Word 里,快捷键 Alt + F11 直接调出 VBA 编辑器; 如果快捷键无效:【开发工具】→【Visual Basic】。
步骤 2:插入模块
在左侧工程窗口,右键你的文档名称 →【插入】→【模块】; 双击新建出来的模块1,把上面整段代码粘贴到右侧空白代码窗口。
(tips:也可以随便录制一个宏命令,然后打开录制的代码,替换为以上代码)
步骤 3:修改公司名称
找到代码里这一行:
targetCompanyName = "ABCDEF有限公司"
把引号里面的文字,替换成你自己公司的全称,注意引号不要删掉。
步骤 4:运行宏
回到你的计算书 Word 文档; 回到 VBA 窗口,光标放在代码内部,点上方▶运行按钮; 或者回到 Word 界面:【开发工具】→【宏】,选中 FillCompanyName→【执行】。弹出 “OK啦!已填充完成!” 提示即运行结束,查看表格 “计算单位” 右边单元格。
四、注意事项
- 只填空单元格
:如果 “计算单位” 右侧格子已经写了文字,宏不会覆盖,避免误删原有信息; - 文档保存格式
:带宏的文档,保存格式必须是 .docm(启用宏的 Word 文档);普通.docx无法保存 VBA 代码,关闭后代码丢失;每次使用时都要在旁边打开这个.docm的文件才能在新计算书里调出这个宏命令。 - 宏安全设置
:第一次打开带宏文件,Word 默认会禁用宏,需要点击顶部【启用内容】; - 多表格批量处理
:一份 Word 里面有多张计算书页面需要填写,全部会自动识别处理,适合批量出计算书。

如果你以后用熟练了,还可以改造这个宏:
比如同时填充设计、校核、日期、版本; 匹配别的关键字(例如 “设备名称”“设计压力”)自动填参数; 做成一键按钮放在 Word 菜单栏,不用每次进 VBA 运行。















































































