背景
一个文档含有大量表格,且蛋疼的是表题跟表格“糊”在一起了,具体如下图:
因为表题位于表格的标题行了算是,所以当我们需要应用表格样式的时候就会有阻碍
目的
将表格表题拎出来
解决步骤
1.先看看一个个弄得多费劲
手工处理一个表格,往往我们需要
1)表格拆分:拆分成
表题表格a
和所需表格b
2)表格a光标选中
,表格>布局选项卡选中
,单击
表格转成文本,最后弹出框的确定单击
[这有多少步骤就显然了把.]
3)表题拆分完了,发现还有个换行,还得选中
该换行后,按
delete键
费劲把,于是乎,程序的作用就凸显了。
2.程序的作用
整个上述流程一行代码就搞定
Selection.Tables(1).Rows(1).ConvertToText Separator:=wdSeparateByParagraphs, _
NestedTables:=True
但是有一些表格第一行有合并情况时,比如说第一行分布有两个行和一个行的,那程序会报错。
于是我们需要再细细解决一下问题。如下:
第一步,拆分表格:
Selection.Move unit:=wdRow, count:=1
Selection.InsertBreak Type:=wdColumnBreak
第二步,第一行转成纯文字:
Selection.Move unit:=wdRow, count:=-1
Selection.Tables(1).Rows(1).ConvertToText Separator:=wdSeparateByParagraphs, _
NestedTables:=True
第三步,删除换行:
Selection.Move unit:=wdParagraph, count:=1
Selection.Delete
最终整理如下:
Sub test20240325【表格】表格第一行转成文本()
On Error Resume Next
Selection.Tables(1).Rows(1).ConvertToText Separator:=wdSeparateByParagraphs, _
NestedTables:=True
Selection.Style = "正文--表标题"
Debug.Print Err.Number
If Err.Number = "5991" Then Call 表格第一行转成文本报错处理流程 '程序未报错时,Err.Number =0
End Sub
Sub 表格第一行转成文本报错处理流程()
Selection.Move unit:=wdRow, count:=1
Selection.InsertBreak Type:=wdColumnBreak
Selection.Move unit:=wdRow, count:=-1
Selection.Tables(1).Rows(1).ConvertToText Separator:=wdSeparateByParagraphs, _
NestedTables:=True
Selection.Style = "正文--表标题"
Selection.Move unit:=wdParagraph, count:=1
Selection.Delete
End Sub
可见,当我们掌握VBA时,对于文档的操作真是如虎添翼。
总结
可见,当我们掌握VBA时,对于文档的操作真是如虎添翼。
记录下,分享