复制Excel表格到Word

3

我需要将名为“GreatIdea”的表格导出到Word文档中。'GreatIdea'分为多页,我的列基于这些页面。

A-C包含目录,D-F包含第1章,...

Sub test()

' Open LOL.docx'
Dim appWD As Word.Application
Set appWD = New Word.Application
Dim docWD As Word.Document
Set docWD = appWD.Documents.Open("C:\Users\TOM\Desktop\LOL.docx")
docWD.Activate
Sheets("Sheet1").Select

' Copy from GreatIdea to LOL.docx'

Range("A1:K40").Copy
appWD.Selection.PasteSpecial

appWD.ActiveDocument.SaveAs Filename:=ThisWorkbook.Path & "/" & "OEF_OFFERTE"
appWD.ActiveDocument.Close
appWD.Quit
Set appWD = Nothing
Set docWD = Nothing

End Sub

这会将所有内容复制到Word中,但不会复制列布局。其他复制所有内容的解决方案也是可以接受的。我只需要确保每个列的所有数据都能被复制。

修改后的Mike的答案:

 Range("A1:C40").Copy
 appWD.Selection.PasteExcelTable LinkedToExcel:=False, WordFormatting:=False, RTF:=True

为什么你使用“双引号”来表示你的注释?在VBA中,正确的语法是使用单引号,'像这样。 - Jean-François Corbett
我知道,但在Stackoverflow上它会搞乱颜色吗? - CustomX
我编辑了我的问题,将单引号变成双单引号,似乎也可以解决问题 :) - CustomX
1个回答

4

由于您正在使用WORD应用程序(AppWD),因此有一个更好的功能:

expression.PasteExcelTable(LinkedToExcel, WordFormatting, RTF)

试一试以下其中之一

AppWD.Selection.PasteExcelTable False, True, True   ' aequivalent to PasteSpecial As RTF
AppWD.Selection.PasteExcelTable False, False, True  ' keeps Excel formats
AppWD.Selection.PasteExcelTable False, False, False ' aequivalent to PasteSpecial As HTML

祝你好运 - MikeD


抱歉,我无法查看您的初始问题。请提供要翻译的英文文本。 - CustomX

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接