在Excel中使用VBA复制工作表信息到Word
_如果您需要将多个Excel工作表中的数据复制并粘贴到MS Word中,则应阅读此文章。在excel中,没有这样的功能可以将数据从excel工作簿转换为Word文件。 Word应用程序无法直接打开excel文件。但是,可以将excel数据复制并粘贴到Word中,然后另存为Word文档。
我们都将数据从excel手动传输到word,这在一天中执行多次相同的步骤时有时会变得很乏味;为了避免手动操作,我们将编写VBA代码来执行所有步骤。_
|在本文中,我们将专注于将数据从excel移至Word文档。我们将通过VBA代码自动化整个过程。使用宏代码,您可以一次简单地将数据复制到一个工作表中,然后自动启动Word应用程序,VBA代码将使用粘贴命令将数据插入到doc文件中。
获取代码;我们需要按照以下步骤启动VB编辑器:
单击“开发人员”选项卡。从“代码”组中,选择“ Visual Basic”
有一个重要的步骤,您不能错过。单击“工具”以选择“引用”向下滚动,直到找到“ Microsoft Word 15.0 Object Library”。参考下图
-
将以下代码复制到标准模块中
Sub CopyWorksheetsToWord() Dim wdApp As Word.Application, wdDoc As Word.Document, ws As Worksheet Application.ScreenUpdating = False Application.StatusBar = "Creating new document..." Set wdApp = New Word.Application Set wdDoc = wdApp.Documents.Add For Each ws In ActiveWorkbook.Worksheets Application.StatusBar = "Copying data from " & ws.Name & "..." ws.UsedRange.Copy wdDoc.Paragraphs(wdDoc.Paragraphs.Count).Range.InsertParagraphAfter wdDoc.Paragraphs(wdDoc.Paragraphs.Count).Range.Paste Application.CutCopyMode = False wdDoc.Paragraphs(wdDoc.Paragraphs.Count).Range.InsertParagraphAfter If Not ws.Name = Worksheets(Worksheets.Count).Name Then With wdDoc.Paragraphs(wdDoc.Paragraphs.Count).Range .InsertParagraphBefore .Collapse Direction:=wdCollapseEnd .InsertBreak Type:=wdPageBreak End With End If Next ws Set ws = Nothing Application.StatusBar = "Cleaning up..." With wdApp.ActiveWindow If .View.SplitSpecial = wdPaneNone Then .ActivePane.View.Type = wdNormalView Else .View.Type = wdNormalView End If End With Set wdDoc = Nothing wdApp.Visible = True Set wdApp = Nothing Application.StatusBar = False End Sub
===
为了测试代码,让我们插入2张纸并添加随机数。以下是两个工作表的快照:
第一页:-
第二张:-
|在工作表中设置数据后;我们可以运行宏Word应用程序将立即启动,并且数据将从所有工作表复制到Word中;请参阅下面的快照
如果您认为复制数据是一项任务,但是每个工作表数据之间应该有一个分页符,以便任何人都可以轻松地区分每个工作表中的数据。
以上数据将从一张纸中复制,然后VBA代码将确保在页面之间添加分页符。
结论:通过这种方式,我们可以为许多Microsoft Office用户提供帮助,他们认为将数据从excel文件转换为word有点复杂或不可能。上面的代码演示了如何轻松地将数据复制并粘贴到Word文件中,而不会从多张Excel工作表到Word文档文件造成麻烦。
如果您喜欢我们的博客,请在Facebook上与您的朋友分享。您也可以在Twitter和Facebook上关注我们。
我们很高兴收到您的来信,请让我们知道我们如何改进,补充或创新我们的工作,并为您做得更好。写信给我们[email protected]