夜雨聆风学习资料网

ARTICLE · 1311273

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

手把手从0搭建自己的Excel自动计算表(4)丨自动填写WORD计算书里的公司名
今天有朋友问到怎么一键替换计算书里的空白单位名称。每次遇到这种重复的工作,我首先想到的就是VBA宏命令。
很多做压力容器、化工设备的同行,日常要批量出 GB/T 150 计算书,每张计算单的表格里都有一栏“计算单位”,每次都要手动在它右边单元格填写公司名称,重复枯燥,还容易漏填、填错。 下面给大家一套可复制使用的 VBA 宏代码,专门适配这类计算书 Word 表格。原理是让电脑遍历计算书的每一页,找到文字为「计算单位」的单元格,自动在它右边一格填充公司名称;单元格已有文字时不会覆盖,安全不破坏原有内容。

一、功能说明

  1. 自动遍历当前 Word 文档里所有表格;
  2. 模糊匹配单元格文字,只要单元格包含 “计算单位” 就识别;
  3. 定位到该单元格右侧相邻单元格;
  4. 自动清除 Word 单元格自带的特殊结束符号、首尾空格;
  5. 只在右侧单元格为空的时候填充公司名
    ,原有内容不会被覆盖;
  6. 自带异常容错:遇到合并单元格、表格最后一列(没有下一格)不会直接报错;
  7. 运行结束弹出提示框,告知执行完成。
二、完整 VBA 代码

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:运行宏

  1. 回到你的计算书 Word 文档;
  2. 回到 VBA 窗口,光标放在代码内部,点上方▶运行按钮; 或者回到 Word 界面:【开发工具】→【宏】,选中 FillCompanyName →【执行】。
  3. 弹出 “OK啦!已填充完成!” 提示即运行结束,查看表格 “计算单位” 右边单元格。

四、注意事项

  1. 只填空单元格
    :如果 “计算单位” 右侧格子已经写了文字,宏不会覆盖,避免误删原有信息;
  2. 文档保存格式
    :带宏的文档,保存格式必须是 .docm(启用宏的 Word 文档);普通.docx无法保存 VBA 代码,关闭后代码丢失;每次使用时都要在旁边打开这个.docm的文件才能在新计算书里调出这个宏命令。
  3. 宏安全设置
    :第一次打开带宏文件,Word 默认会禁用宏,需要点击顶部【启用内容】;
  4. 多表格批量处理
    :一份 Word 里面有多张计算书页面需要填写,全部会自动识别处理,适合批量出计算书。

如果你以后用熟练了,还可以改造这个宏:

  • 比如同时填充设计、校核、日期、版本;
  • 匹配别的关键字(例如 “设备名称”“设计压力”)自动填参数;
  • 做成一键按钮放在 Word 菜单栏,不用每次进 VBA 运行。

回首页,搜索你想要的文档

在首页搜索框输入关键词,快速定位资料

文库首页搜索指引 立即搜索

相关学习资料