admin 管理员组

文章数量: 887007

Excel里的文字内容(放在A列和B列)

最终排版效果

Sub 把EXCEL里的文字拷贝到word并进行排版() '主程序

Dim a As Object '定义一个object型变量

Dim m, n, i As Long '定义3个long型整数变量

Set a = CreateObject("Excel.Application") ' 调用excel软件

a.Visible = True 'excel软件前台可见

a.WorkBooks.Open FileName:="C:\Users\p503406\Desktop\根据excel中的文字一键生成满足格式要求的word文档(未完成).xlsx" '打开excel文件《根据excel中的文字一键生成满足格式要求的word文档(未完成).xls》

m = a.ActiveSheet.Rows.Count '数一下 excel当前工作表共有多少行(空白行和非空白行都数)

n = a.ActiveSheet.Cells(m, 1).End(3).Row '数一下 excel当前工作表共有多少行有内容

For i = 1 To n Step 1

a.ActiveSheet.Cells(i, 2).Copy '复制excel表格中i行2列单元格中的内容

Word.Application.Activate '激活word软件

Word.Application.Selection.PasteAndFormat (wdFormatPlainText) '把excel表格中i行2列单元格中的内容以纯文本格式粘贴到word文档中,每一个单元格中的内容在word中变成一个段落

With Word.Application.ActiveDocument.Paragraphs(i) '对于word中第i个段落(也即xcel表格中i行2列单元格中的内容)

If i <= 3 Then '对于word中的前3个段落

.Range.Font.Name = "微软雅黑" '第i个段落的字体是微软雅黑

.Range.Font.Size = 12 '第i个段落的字体大小是14

.Range.Font.Bold = True '字体加粗

.Alignment = 1 '第i个段落的对齐方式是居中

.SpaceBefore = 20 '第i个段落与相邻的上一段落的段间距是20

.SpaceAfter = 20 '第i个段落与相邻的下一段落的段间距是20

.LineSpacingRule = wdLineSpaceAtLeast '第i个段落内部的行间距设置规则是wdLineSpaceAtLeast

.LineSpacing = 10 '第i个段落内部的行间距10

ElseIf i > 3 Then '对于第4及以后的段落

.Range.Font.Name = "宋体" '第i个段落的字体是宋体

.Range.Font.Size = 10 '第i个段落的字体大小是8

.Range.Font.Bold = False '字体不加粗

.Alignment = 0 '第i个段落的对齐方式是左对齐

.CharacterUnitFirstLineIndent = 0 '第i个段落的首行缩进0个字符

.SpaceBefore = 20 '第i个段落与相邻的上一段落的段间距是20

.SpaceAfter = 20 '第i个段落与相邻的的下一段落的段间距是20

.LineSpacingRule = wdLineSpaceAtLeast '第i个段落内部的行间距设置规则是wdLineSpaceAtLeast

.LineSpacing = 10 '第i个段落内部的行间距10

End If

End With

If a.ActiveSheet.Cells(i, 1).Value = "正文一级标题" Then '对于一级标题的段落

Word.Application.Selection.Style = ActiveDocument.Styles("标题 1")

Call 可为文章任何一个段落添加多级列表 '调用名为“可为文章任何一个段落添加多级列表”代码为此标题增加一级列表符号

ElseIf a.ActiveSheet.Cells(i, 1).Value = "正文二级标题" Then

本文标签: 高效 范例 文字 目录 列表