之前我们都是将Excel中的内容输入到Word中,今天来看一个将Excel表格直接转为word表格的例子。利用的就是复制粘贴,主要学习一下怎样利用VBA粘贴Excel表格到Word。
Sub Macro1() '引用Microsoft Word 1x.0 Objects Library
Dim rng As Range
Dim MyWord As New Word.Application
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set rng = [a1].CurrentRegion
With MyWord
.Visible = True
.Documents.Add
rng.Copy '复制
.Selection.PasteExcelTable False, False, False '粘贴为表格
.Selection.WholeStory
.Selection.Font.Size = 12
With .Options
.DefaultBorderLineStyle = wdLineStyleSingle
.DefaultBorderLineWidth = wdLineWidth050pt
.DefaultBorderColor = wdColorAutomatic
End With
.Selection.Tables(1).PreferredWidthType = 3
.Selection.Tables(1).PreferredWidth = .CentimetersToPoints(15)
.ActiveDocument.SaveAs Filename:=ThisWorkbook.Path & "\" & Split(Workbooks(1).Name, ".")(0) & ".doc"
.ActiveDocument.Close
.Quit
End With
Set MyWord = Nothing
Application.CutCopyMode = False
Application.DisplayAlerts = True
Application.ScreenUpdating = True
MsgBox "ok"
End Sub
之前我们都是用CreateObject("word.application")来创建一个Word对象,这次我们直接引用了Word组件,也就不必用 CreateObject("word.application")了,引用之后该对象的一些方法和属性就可以直接使用了。粘贴为表格的方法是PasteExcelTable。剩下的就和前面的差不多了,一些定义格式的代码直接在Word中录制个宏就可以了,代码结合英文意思或者百度一下就知道是设的哪些格式了,这里不再多说。
本节示例文件下载地址:http://pan.baidu.com/s/1kTifLmn。