欢迎大家光临我的个人博客:http://www.chenjingjiu.cn,大家一起交流学习
最近在做一些文档方面的工作,所以更新的比较少,这次记录一下文档中表格处理的问题。
在工作过程中遇到了一个400页的文档,文档中有大量的表格,也有其他描述性文字等。
而表格是从不同的文档中粘贴过来的,因此格式会略有差异,字体也不尽相同。
因此需要想一种办法将所有的表格统一格式与字体。
当然一个一个弄肯定也可以,不过要耗费大量的时间,这种重复性工作为什么要让我们人来做呢?
所以就需要用到office的高级功能—宏。
宏是微软公司为其OFFICE软件包设计的一个特殊功能,软件设计者为了让人们在使用软件进行工作时,避免一再地重复相同的动作而设计出来的一种工具,它利用简单的语法,把常用的动作写成宏,当在工作时,就可以直接利用事先编好的宏自动运行,去完成某项特定的任务,而不必再重复相同的动作,目的是让用户文档中的一些任务自动化。
作为一个研究生,到今天才发现office有这么强大的功能,实在是惭愧啊
所以如何统一修改表格的格式呢?
在视图中找到宏,然后点击查看宏,或者直接Alt+F8也可以直接打开
打开后,这里面的其实就是office预定义的一些宏,用以完成一系列特定的功能。
这里的功能可以从名字看出来用途,但是没有我们需要的,所以我们需要新建一个宏。
以【选中文档中的所有表格】这一功能为例,我们在宏名输入SelectAllTables,然后点击创建。
然后输入下面的代码,点击绿色的小三角,等待片刻
返回原文档,看看所有的表格是否都被选中了?
然后我们可以对所有的表格进行操作,如设置表格中的字体、字号、对齐方式,这样可能在5分钟之内完成了我们一天也完不成的机械工作。
其实还有一种简便方法,直接Alt+F11,直接就出来VB编辑器
然后双击ThisDocument,在框中输入代码即可自动创建相应宏。
注意保存时会弹出一个对话框如下
如果只是用宏处理一下问题,不想改变原文档的话,就选是,VBA工程不会保存到原文档中。
如果想要把原文档变成可以拥有某种功能的文档,每次打开时自动调整,就点否,会提示你另存为一个新的启用宏的文档。
最后放上两段代码,是我最近用的比较多的两个代码
选中所有表格:
Sub SelectAllTables()
Dim tempTable As Table
Application.ScreenUpdating = False
'判断文档是否被保护
If ActiveDocument.ProtectionType = wdAllowOnlyFormFields Then
MsgBox "文档已保护,此时不能选中多个表格!"
Exit Sub
End If
'删除所有可编辑的区域
ActiveDocument.DeleteAllEditableRanges wdEditorEveryone
'添加可编辑区域
For Each tempTable In ActiveDocument.Tables
tempTable.Range.Editors.Add wdEditorEveryone
Next
'选中所有可编辑区域
ActiveDocument.SelectAllEditableRanges wdEditorEveryone
'删除所有可编辑的区域
ActiveDocument.DeleteAllEditableRanges wdEditorEveryone
Application.ScreenUpdating = True
End Sub
所有表格居中
Private Sub Document_Open()
Application.Browser.Target = wdBrowseTable
For i = 1 To ActiveDocument.Tables.Count
ActiveDocument.Tables(i).AutoFitBehavior (wdAutoFitContent) '根据内容自动调整表格
ActiveDocument.Tables(i).AutoFitBehavior (wdAutoFitWindow) '根据窗口自动调整表格
ActiveDocument.Tables(i).Range.ParagraphFormat.Alignment = wdAlignParagraphCenter '水平居中
ActiveDocument.Tables(i).Range.ParagraphFormat.Alignment = wdCellAlignVerticalCenter '垂直居中
Next i
End Sub