【办公自动化】1. 如何在Word表格中自动插入序号

pexels-mateusz-dach-450035.jpg

很多时候Word中的表格操作没有Excel中方便,例如以下这种情况:

表格中的第一列是序号,需要填入依次递增的数字,但是Word中又没有填充功能,难道这种情况下只能一个个手动输入吗?

当然不可能。

本鹕虽然懂些办公自动化的皮毛,但也忍不了这种低效的操作,这里提供三种常用的方法,大家可以按需选用。

01 插入项目编号

最简单的一种方法,直接在序号列插入项目编号,缺点是无法完全居中,不美观。

如果对居中没有要求,这种方式应该是最简单方便的。

但这种不完美对于强迫症来说,例如本鹕:smile:,简直是眼中钉肉中刺,绝对忍不了。

强迫症们可以看看后面两种方法。

项目符号.gif
插入项目编号

02 Word域代码

{ SEQ list }

Word中的域代码类似于公式,域代码的结果类似于公式生成的值。本例中SEQ域的作用是自动生成序列号。

在需要输入序列号的位置【插入】...【文档部件】...【域】,选择SEQ域,在SEQ后面输入list(也可以是其他字符),点击确定。

按Alt+F9切换域代码显示,可以看到生成了{ SEQ list }的域代码,这里可以将其理解成定义了一个名字为list的SEQ变量。

也可以按Ctrl+F9出现一对花括号,在花括号中输入SEQ list。

将SQE域代码复制到所有要输入序列号的单元格,全部选中,按F9更新即可看到已生成序列号。


域代码插入序号方法.gif

插入SEQ域

这种方式会有一个问题,就是当存在多个表格时,后面表格中序列号的起始值时接着上一表格的,并不是从1开始,

这时就需要加上开关指令\r。


序列号紧接着上一表格.gif
序列号紧接着上一表格

{ SEQ list\r1 }

为了使每个表格的序列号都单独从起始序号1开始,需要加上开关指令,这里/r的意思是r后面的编号重设序列号,这里输入1,表示后面的编号从1开始。

加上开关指令\r1后编号从1开始.gif
加上开关指令\r1后编号从1开始

虽然SEQ域代码的方法能够解决序列号无法水平居中的问题,但是该方法还是不够智能化——

插入域后还需要复制粘贴,多个表格情况还要修改域代码,操作略显繁琐。

那有没有只需设置好后就能一键操作的方式呢?

那看来只能是用到VBA了。

03 VBA代码

这里直接附上VBA代码,将代码粘贴到Word的VB编辑器中,保存,从宏命令中调用即可。也可以添加到自定义工具栏上,方便调用。

Sub 自动插入序号()

Dim i As Integer
i = 1

'遍历选中的单元格
With Selection
    For Each aCell In .Cells
        aCell.Range.Delete '删除原有内容
        aCell.Range.InsertAfter i '输入序号
        i = i + 1 '序号递增
    Next aCell
End With

End Sub

VBA插入序号.gif
VBA生成序列号

可以看到,只需要选择需要输入序列号的单元格,运行VBA代码即可自动生成序列号,比起前两种方法,这种方法解决了序列号水平居中的问题,同时操作相对简洁,可以称得上真正的“一键操作”。

你可能感兴趣的:(【办公自动化】1. 如何在Word表格中自动插入序号)