从Excel导出到单词文档并在单词中插入标题

时间:2014-05-26 08:25:22

标签: excel vba excel-vba ms-word word-vba

我有以下代码:

    Sub CreateRapport()

    Dim wdApp As Object
    Dim wd As Object

    On Error Resume Next
    Set wdApp = GetObject(, "Word.Application")
    If Err.Number <> 0 Then
        Set wdApp = CreateObject("Word.Application")
    End If
    On Error GoTo 0

    Set wd = wdApp.Documents.Add

    wdApp.Visible = True



Sheets("Rapport").Activate
Set Rng = ThisWorkbook.ActiveSheet.Range("A1:E76")

Rng.Copy

   With wd.Range
        .Collapse Direction:=0                  'Slutet av dokumentet
        .InsertParagraphAfter                   'Lägg till rad
        .Collapse Direction:=0                  'Slutet av dokumentet
        .PasteSpecial False, False, True        'Pasta som Enhanced Metafile

    End With

End Sub

它的作用是使用范围A1:E76

中的数据创建一个word文档

我想在这个word文档中插入一个包含图片和名称的标题。此标题中的名称位于同一工作表中的单元格A1中。

如果有人能帮助我,我将非常感激。谢谢。

1 个答案:

答案 0 :(得分:0)

如何将单元格A1中的文本添加到文档中:

wdApp.Selection.TypeText ThisWorkbook.ActiveSheet.Range("A1").Text

如何将当前文本转换为标题:

'***** Word VBA constant wdStyleHeading1 = -2
wdApp.Selection.Style = -2

如何添加图片:

wdApp.Selection.InlineShapes.AddPicture Filename:="PATH_TO_IMAGE", LinkToFile:=False, SaveWithDocument:=True

如果你将上面的代码放在一起并直接在行wdApp.Visible = True之后添加它,你会在最后得到一个带有图像的标题,但我无法从你的问题中确切地知道你希望文档如何看。

修改

显示当前标题的代码:

'***** Word VBA constant wdSeekCurrentPageHeader = 9
wdApp.ActiveWindow.ActivePane.View.SeekView = 9

显示普通视图:

'***** Word VBA constant wdSeekMainDocument  = 0
wdApp.ActiveWindow.ActivePane.View.SeekView = 0

将所有内容放在一起,将其粘贴到行wdApp.Visible = True之后,这次不设置样式:

wdApp.ActiveWindow.ActivePane.View.SeekView = 9
wdApp.Selection.TypeText ThisWorkbook.ActiveSheet.Range("A1").Text
wdApp.Selection.InlineShapes.AddPicture Filename:="PATH_TO_IMAGE", LinkToFile:=False, SaveWithDocument:=True
wdApp.ActiveWindow.ActivePane.View.SeekView = 0

编辑2

关于将嵌入图像从Excel传输到Word的建议是使用复制和粘贴:

'***** copy image from cell B1 in Excel
ThisWorkbook.ActiveSheet.Range("B1").Copy
'***** past image at the current position in Word
wdApp.Selection.Paste

代码需要靠近wdApp.Selection.TypeText命令,取决于您希望图像显示的位置。

编辑3

添加页码字段的代码:

Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:="PAGE  ", PreserveFormatting:=True