在EXCEL中用VBA处理WORD表格常规属性文档格式.docx
《在EXCEL中用VBA处理WORD表格常规属性文档格式.docx》由会员分享,可在线阅读,更多相关《在EXCEL中用VBA处理WORD表格常规属性文档格式.docx(28页珍藏版)》请在冰豆网上搜索。
bgS=dkDOC.Tables.Count'
当前文档中的表格总数
dkDOC.Close'
关闭文档
SetdkDOC=Nothing'
释放存储空间
SetwdWORD=Nothing'
MsgBoxChr(10)&
Dir(dqM)&
文档中共有"
&
bgS&
个表格!
"
,"
计算WORD表格个数"
EndSub
提示:
嵌入式表格如WORD文档中插入的EXCEL表格、表格中插入的表格。
计算表格个数的代码格式——文档对象.Tables.Count
上述方法不能计算WORD文档中的嵌入式表格个数。
2.计算WORD文档中各个表格的行/列数
在EXCEL中,遍历WORD文档“成绩表.doc”中的表格,计算表格的行数和列数。
Sub计算指定WORD文档中表格行列数()
Forg=1TobgS'
循环表格
WithdkDOC.Tables(g)'
逐个表格计算
hs=.Rows.Count'
行数
ls=.Columns.Count'
列数
MsgBoxChr(10)&
文档共有表格"
个"
_
Chr(10)&
第"
g&
个表格有"
hs&
行"
ls&
列"
计算WORD表格行列数"
计算信息提示
EndWith
Nextg
计算行数代码格式——文档对象.表格对象.Rows.Count
计算列数代码格式——文档对象.表格对象.Columns.Count
上述方法不能计算嵌入式表格的行/列数。
3.选定WORD表格的指定区域
⑴选定整个表格
Sub选择WORD文档的指定表格整体()
wdWORD.Visible=True'
窗口可见
'
wdWORD.ActiveDocument.Tables
(1).Select'
选择整个表格
wdWORD.ActiveDocument.Tables
(1).Range.Select'
wdWORD.Quit'
关闭新建文档窗口
⑵选定一个单元格
Sub选择WORD表格的第一个单元格()
SetwdBG=wdWORD.ActiveDocument.Tables
(1)'
创建表格对象
wdBG.Cell(1,1).Select'
选择第一个单元格
wdBG.Cell(1,1).Range.Select'
SetwdBG=Nothing'
⑶选定表格最后一个单元格
Sub选择WORD表格的最后一个单元格()
hs=wdWORD.ActiveDocument.Tables
(1).Rows.Count'
ls=wdWORD.ActiveDocument.Tables
(1).Columns.Count'
wdBG.Cell(hs,ls).Range.Select'
选择最后一个单元格
注意:
一个表格的最后一个单元格由表格的最后一行hs和最后一列ls围成的一个方格。
所以表格最后一个单元格的代码格式是.Cell(hs,ls)。
⑷选定指定行/列
Sub选择WORD表格指定行()
wdWORD.ActiveDocument.Tables
(1).Rows(3).Select'
选择第3行
wdWORD.ActiveDocument.Tables
(1).Rows(3).Range.Select'
Sub选择WORD表格指定列()
wdWORD.ActiveDocument.Tables
(1).Columns(3).Select'
选择第3列
【提示】
选择最后一行
wdWORD.ActiveDocument.Tables
(1).Rows(hs).Select
选择最后一列
wdWORD.ActiveDocument.Tables
(1).Columns(ls).Select
⑸选定WORD表格中任意连续区域
①选择连续行
Sub选择WORD表格指定的连续行()
SetwDoc=wdWORD.Documents.Open(dqM)'
SetwBG=wDoc.Tables
(1)'
定义表格变量
wDoc.Range(wBG.Cell(2,1).Range.Start,wBG.Cell(wBG.Rows.Count,wBG.Columns.Count).Range.End).Select'
选择第2行到最后一行
SetwBG=Nothing'
SetwDoc=Nothing'
②选择任意列
Sub选择WORD表格任意指定的连续列()
wDoc.Range(wBG.Cell(1,4).Range.Start,wBG.Cell(wBG.Rows.Count,7).Range.End).Select'
选择第4列到第7列
说明:
列没有Range对象属性。
所以在选择连续列时不能使用如下代码:
wDoc.Range(wBG.Columns(4).Range.Start,wBG.Columns(7).Range.End).Select'
③选择任意连续单元格区域
Sub选择WORD表格任意指定的连续单元格区域()
wDoc.Range(wBG.Cell(5,4).Range.Start,wBG.Cell(7,7).Range.End).Select'
选择第5行4列到第7行7列构成的单元格区域
【小结】
选择WORD表格中的任意连续区域,关键是确定起始位置和终止位置。
选择任意连续单元格区域的关键代码格式如下:
文档对象.Range(表格对象.Cell(起始行,起始列).Range.Start,表格对象.Cell(终止行,终止列).Range.End).Select
4.设置WORD表格的单元格格式
设置WORD表格的单元格格式,包括单元格中的文本对齐格式和文字的字体、字号、是否加粗等格式。
WORD表格单元格中的文本的对齐格式,是指段落在水平方向的对齐方式和在垂直方向的对齐方式。
所以在设置单元格的对齐方式时,一要设置单元格中的文本段落在水平方向的对齐方式即左对齐、居中、右对齐,二要设置文本在垂直方向的对齐方式即靠上、居中、靠下。
【问题】
以WORD文档“成绩表.doc”为例,设置标题行各单元格数据“中部居中(即水平居中且垂直居中)”、“华文新魏”、字号“12”、“加粗”。
Sub设置WORD表格的单元格格式()
WithwdBG.Rows
(1).Range'
表格第1行
.Font.Bold=True'
加粗
.Font.Size=12'
字号
.Font.Name="
华文新魏"
字体
.ParagraphFormat.Alignment=1'
水平居中
.Cells.VerticalAlignment=1'
垂直居中
EndWith
单元格数据居中即WORD程序菜单命令“表格/单元格对齐方式”的“中部居中”,指水平居中和垂直居中。
代码如下:
水平居中——单元格对象.ParagraphFormat.Alignment=1
垂直居中——单元格对象.Cells.VerticalAlignment=1
单元格对齐方式常量一览表
名称
常量代码
赋值
靠上两端对齐
wdAlignParagraphJustify
3
wdCellAlignVerticalTop
靠上居中
wdAlignParagraphCenter
1
靠上右对齐
wdAlignParagraphRight
2
中部两端对齐
wdAlignParagraphJustify
wdCellAlignVerticalCenter
中部居中
中部右对齐
靠下两端对齐
wdCellAlignVerticalBottom
靠下居中
靠下右对齐
注意哦,表中的常量代码,在EXCEL中操作WORD时,由于后期绑定原因,必须用对应的赋值取代方可体现效果!
5.设置WORD表格的对齐格式
在WORD文档中的表格对齐,主要是指表格在页面水平方向的对齐,即左对齐、居中、右对齐。
对应WORD程序菜单命令“表格/表格属性/表格”中的三种对齐方式。
Sub设置WORD文档中的表格对齐()
\放假通知.doc"
dkDOC.Tables
(1).Rows.Alignment=1'
6.在WORD表格中插入(删除)行/列
⑴插入行/列
与当前操作的EXCEL文件保存在同一位置的WORD文档“放假通知.doc”中,第一个表格有2行10列,在表格选定行的上/下方或者左/右侧插入新行/列(一行/列或多行/列)。
①在指定行的上/下插入行
Sub在指定行的上下插入行()
SetwApp=CreateObject("
)'
创建WORD对象
SetwDoc=wApp.documents.Open(dqM)'
wApp.Visible=True'
wDoc.Tables
(1).Rows
(2).Select'
选择指定行(第2行,可以根据表格实际行数修改此数字值)
wDoc.Application.Selection.InsertRowsAbove3'
指定行上方插入3行
wDoc.Application.Selection.InsertRowsBelow3'
指定行下方插入3行
Zh=wDoc.Tables
(1).Rows.Count'
计算插入新行后的表格总行数
MsgBox"
成功新插入3行,当前表格共有"
Zh&
行"
在指定列的上下插入行"
wDoc.CloseTrue
wApp.Quit
SetwApp=Nothing
SetwDoc=Nothing
wDoc.Application.Selection.InsertRowsAbove3——在所选择行的上方新插入3行。
如果执行代码——wDoc.Application.Selection.InsertRowsBelow3,则是在所选择行的下方新插入3行。
②在指定列的左/右插入列
Sub在指定列的左右插入列()
wApp.Visible=T