很多时候Word中的表格操作没有Excel中方便,例如以下这种情况:
表格中的第一列是序号,需要填入依次递增的数字,但是Word中又没有填充功能,难道这种情况下只能一个个手动输入吗?
当然不可能。
本鹕虽然懂些办公自动化的皮毛,但也忍不了这种低效的操作,这里提供三种常用的方法,大家可以按需选用。
01 插入项目编号
最简单的一种方法,直接在序号列插入项目编号,缺点是无法完全居中,不美观。
如果对居中没有要求,这种方式应该是最简单方便的。
但这种不完美对于强迫症来说,例如本鹕:smile:,简直是眼中钉肉中刺,绝对忍不了。
强迫症们可以看看后面两种方法。
插入项目编号
02 Word域代码
{ SEQ list }
Word中的域代码类似于公式,域代码的结果类似于公式生成的值。本例中SEQ域的作用是自动生成序列号。
在需要输入序列号的位置【插入】...【文档部件】...【域】,选择SEQ域,在SEQ后面输入list(也可以是其他字符),点击确定。
按Alt+F9切换域代码显示,可以看到生成了{ SEQ list }
的域代码,这里可以将其理解成定义了一个名字为list的SEQ变量。
也可以按Ctrl+F9出现一对花括号,在花括号中输入SEQ list。
将SQE域代码复制到所有要输入序列号的单元格,全部选中,按F9更新即可看到已生成序列号。
插入SEQ域
这种方式会有一个问题,就是当存在多个表格时,后面表格中序列号的起始值时接着上一表格的,并不是从1开始,
这时就需要加上开关指令\r。
序列号紧接着上一表格
{ SEQ list\r1 }
为了使每个表格的序列号都单独从起始序号1开始,需要加上开关指令,这里/r的意思是r后面的编号重设序列号,这里输入1,表示后面的编号从1开始。
加上开关指令\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生成序列号
可以看到,只需要选择需要输入序列号的单元格,运行VBA代码即可自动生成序列号,比起前两种方法,这种方法解决了序列号水平居中的问题,同时操作相对简洁,可以称得上真正的“一键操作”。