1、在EXCEL中用VBA创建WORD文档表格 编辑:madmlwt 1. 在新建WORD空白文档中创建一个表格 【要求】 新建一个WORD空白文档,在新文档中创建一个4行5列的空白表格,在 空白表格的第一个单元格写入“第一单元格”、最后一个单元格中写入“最后- 个单元格二 【代码】 Sub创建一个WORD表格() Application.ScreenUpdating = False '关闭屏幕刷新 dqT = Timer,程序运行开始时间(秒) dqM = ThisWorkbook.Name '要创建的WORD文件名称(当前工作簿名称) Set wordAppl = Crea
2、teObject(nWord.Application")'定义一个 Word 对象变量 With wordAppl.Documents.Add '创建一个新的Word文档 .ActiveDocument.tables.Add Range:=.Selection.Range, NumRows:=4, N umColumns:=5,插入 4X5 表格Set myRange = .ActiveDocument.tables( 1)'创建表格对象 With myRange,Cell(l, 1).Range.insertAfter ”第一个单元格”,第一个单元格中写 入字符第一个单元格.Cell
3、Rows.Count, .Columns.Count).Range.insertAfter "最后一个 单元格”’第二个单元格中写入字符最后一个单元格End With .ActiveDocument.SaveAs ThisWorkbook.Path & nV & dqM & ”.doc" 保存新建Word文档与当前文件相同路径 .Quit,关闭新建文档窗口 End With Set wordAppl = Nothing 释放存储空间 MsgBox Chr(10) & ”成功创建一个 WORD 表格!” _& Chr(10) & Chr(10) & ”共用时"& Timer -
4、dqT & "秒二,L eft(dqM, Len(dqM) - 4) Application.ScreenUpdating = False '关闭屏幕刷新 End Sub 说明: WORD文档中的表格,与EXCEL中的表格概念基本一致,只是表达方式有所区别。tables表示表格对象,tables(l)表示第1个表格(以此类推)。表中的一 个空格也叫单元格,用Cell(行数,列数)表示。 表格行/列数计算代码: 表格行数wordAppl.ActiveDocument.tables(l) .Rows.Count 表格列数wordAppl.ActiveDocument.tables(
5、 1) .Columns.Count 2. 新建一个文档写入两个段落再创建一空白表格 【要求】 第一段落写入“创建一个WORD表格”,字体“黑体”、字号20、对齐“居 中”;第二段落写入“作者:老顽童”,字体“华文行楷”、字号16、对齐“居中"。 【代码】 Sub CommandButton 1 _Click() Application.ScreenUpdating = False '关闭屏幕刷新 dqT = Timer程序运行开始日寸间(秒) Set wordAppl = CreateObject(”Word.Application")'定义一个 Word 对象变量 Wit
6、h wordAppl.Documents.Add,创建一个新的Word文档 '第一段设置.Selection.Font.Name ="黑体”’字体 .Selection.Font.Size = 20,字号.Selection.Font.Bold = True '加粗 .Selection.TypeText Text:=”创建一个 WORD 表格”’第一个段落文本.Selection.ParagraphFormat. Alignment = 1 '居中 '第二段设置.Selection.TypeParagraph '插入新的段落 .Selection.Font.Name = ”华文行楷
7、字体.Selection.Font.Size = 16,字号 .Selection.Font.Bold = False '不加粗.Selection.TypeText Text:=n作者:老顽童”’新段落中写入的文本 .Selection.ParagraphFormat. Alignment = 1 '居中'插入表格 ,Selection.TypeParagraph '插入新的段落.Selection.ParagraphFormat.Alignment = 3 '左对齐 .ActiveDocument.Tables.Add Range:=.Selection.Range, NumR
8、ows:=4, NumColumns:=5,插入 4X5 表格 '保存与关闭.ActiveDocument.SaveAs ThisWorkbook.Path & "'文字表格.doc”,保存 新建Word文档与当前文件相同路径.Documents.Close,关闭新建文档 .QuiL关闭新建文档窗口 End With Set wordAppl = Nothing,释放存储空间 MsgBox Chr(lO) & ”成功创建一个 W0RD 文档!” _& Chr(lO) & Chr(lO) & ”文档第一段写入文本 创建一个 WORD & Chr(lO) & Chr(lO) & ”文
9、档第二段写入文本 作者:老顽童& Chr(lO) & Chr(lO) & ”创建整个 WORD表格文档用时” & Ti mer - dqT & "秒二,"创建表格信息” Application.ScreenUpdating = False '关闭屏幕刷新 End Sub 段落对齐设置值说明: 左对齐——0或3,居中——1,右对齐——2,分散对齐——4o 3. 打开一个已经存在的文档创建一个空白表格 【要求】 在文档“暑假通知书.doc”中第6段落后插入学生个人成绩表(2行12列), 第一行写入标题并设置字体及对齐格式;在文档末尾插入一个2行1列表格,第 一个单元格写入“意见或建
10、议:”,第二个单元格写入“家长签名:”。 ⑴在指定段落间创建一个表格 【代码1】 Private Sub CommandButton 1 _Click() Application.ScreenUpdating = False '关闭屏幕刷新 dqT = Timer,程序运行开始时间(秒) dqM = ThisWorkbook.Path & n\WORD文档'暑假通知书.doc”,带路径的 WORD文件名称 Set wdWORD = CreateObject("Word.Application")'定义一个 Word 对象变量 Set dkDOC = wdWORD.Documen
11、ts.Open(dqM) 1 创建文档对象 wdWORD.ActiveDocument.Paragraphs(6).Range.InsertParagraphAfter '第 6 段落后面插入一个新段落 wdWORD.ActiveDocument.Paragraphs(7).Range.Select 1 选中插入的新段落 dkDOC.Tables.Add Range:=wdWORD.Selection.Range, NumRows:=2, NumColumns:=12,插入一个2行12列表格 Set wdBG = wdWORD.ActiveDocument.Tables(l)'创建表格
12、对象 With wdBG,,表格第1行写入列标题・Cell(l, 1)= ”姓名” .Cell(l, 2)= ”班级”・Cell(l, 3)= ”语文” ,Cell(l, 4)= ”数据”.Cell(l, 5)= ”英语” ・Cell(l, 6)= ”物理”・Cell(l, 7)= ”政治” ,Cell(l, 8)= ”历史”・Cell(l, 9)= ”地理” ・Cell(l, 10)= ”生物”・Cell(l, 11)= ”总分” ,Cell(l, 12)= ”名次”With .Rows(l).Range '表格第一行 .Font.Size = 10 字号.Font.Name
13、 = ”宋体”字体 .Font.Bold = True '加粗.ParagraphFormat. Alignment = 1 '居中 End With End With wdWORD.ActiveDocument.SaveAs '保存修改 wdWORD.Quit,关闭新建文档窗口 Set dkDOC = Nothing '释放存储空间 Set wdWORD = Nothing '释放存储空间 MsgBox Chr(10) & ”成功创建一个 WORD 表格!”& Chr(lO) & Chr(lO) & ”共用时"& Timer . dqT & "秒二,L eft(Dir(dqM
14、), Len(Dir(dqM)) - 4) Application.ScreenUpdating = False '关闭屏幕刷新 End Sub ⑵在文档末尾创建一个表格 【代码2】 Private Sub CommandButton 1 _Click() Application.ScreenUpdating = False '关闭屏幕刷新 dqT = Timer 1程序运行开始时间(秒) dqM = ThisWorkbook.Path & H\WORD 文档'暑假通知书.doc”,带路径的 WORD文件名称 Set wdWORD = CreateObject(nWord.A
15、pplication")'定义一个 Word 对象变 Set dkDOC = wdWORD.Documents.Open(dqM) !创建文档对象 zDS = 前文档段落总数 wdWORD.ActiveDocument.Paragraphs(zDS).Range.InsertParagraphAfter '第 zDS段落后面插入一个新段落 wdWORD. ActiveDocument.Paragraphs(zDS + 1).Range.Select 1 选中插入的新段落 dkDOC.Tables.Add Range:=wdWORD.Selection.Range, NumRows:=
16、2, NumColumns:=l,插入一个2行1列表格 Set wdBG = wdWORD.ActiveDocument.Tables(l)'创建表格对象 With wdBG 1,表格写入文本,Cell(l, 1)="家长意见或建议:” .Cell(2, 1)= ”家长签名:”With .Range '表格 .Font.Bold = True '字型加粗.Font.Size = 12 '字号 .Font.Name = ”宋体”字体.ParagraphFormat.Alignment = 0 '左对齐 End With End With wdWORD.ActiveDocument
17、SaveAs '保存修改 wdWORD.Quit 1关闭新建文档窗口 Set dkDOC = Nothing '释放存储空间 Set wdWORD = Nothing '释放存储空间 MsgBox Chr(10) & ”成功创建一个 WORD 表格!”& Chr(10) & Chr(10) & ”共用时 ” & Timer . dqT & ” 秒二,L eft(Dir(dqM), Len(Dir(dqM)) - 4) Application.ScreenUpdating = False '关闭屏幕刷新 End SubL—a—a—a— 说明: ①计算整个文档的段落总数 zD
18、S = ,当前文档段落总数 计算一个WORD文档的段落总数,以段落标记为准,一个段落标记表示 个段落数。 ②对整个表格设置格式 wdWORD.ActiveDocument.Tables( 1) .Range ,表示整个表格对象。 wdWORD.ActiveDocument.Tables(l) .Range.Font ,表示整个表格对象的文字。 wdWORD.ActiveDocument.Tables(l) .Range.ParagraphFormat ,表示整个表格对象文字的对齐方式。 在WORD表格中,一个单元格就是一个段落。对单元格中的文字设置对齐 方式,就是设置一个段落格式(
19、ParagraphFormat)□ 小结: 在WORD文档中插入表格,关键就是要指明插入表格的位置——文档开始 位置、指定某个段落之后(或之前)、文档末尾等三种可能。归根结底就是在指 定段落前/后(或左/右)插入表格。 表示在指定段落左或右插入表格代码: InsertParagraphBefore左或前插入 InsertParagraphAfter右 或后插 入 指定某个段落之后插入表格步骤: 第一步 插入一个新段落 wdWORD.ActiveDocument.Paragraphs(段落数).Ran ge. InsertParagraphAfter 注意: 在指定某个段落前插入一个新段落代码wdWORD.ActiveDocument.Paragrap hs(段落数).Range.InsertParagraphBefore 第二步选中插入的新段落wdWORD.ActiveDocument.Paragraphs(段落数+ l).Range.Select 第三步 插入表格 dkDOC.Tables.Add Range:=wdWORD.Selection.Range, Nu mRows:=行数,NumColumns:=列数 下面请关注《在EXCEL中用VBA设置WORD表格常规属性》






