我在 excel 中创建了一个测试宏,它复制一个范围并作为表格粘贴到 word 中,同时保持格式。这个宏产生的结果几乎与正常的复制和粘贴相同,除了单元格内的值的位置(它们都离顶部太近了)。还有其他方法可以复制或转移表格吗?视觉差异链接http://prntscr.com/oemp2d
我尝试了简单的 .Paste 和 .PasteExcelTable (false,false,false) 但都产生了同样的问题。我认为这是“Range.Paste”的问题,但我也不能在来自 excel vba 的 word 文档中使用 .select。
Sub test22()
Set shet = ActiveSheet
Set wdDoc = ActiveDocument
shet.Range("A1:B4").Copy
wdDoc.Paragraphs(1).Range.Paste
End Sub
最佳答案
我重现了你的问题。似乎它在表格的每一行之后添加了一个空格。因此,在 Word 中,主页 > 段落 > 行和段落间距 > 段落后删除空格似乎可以修复它。
在 Word VBA 中,我可以用以下方法做同样的事情:
ActiveDocument.Tables(activedocument.Tables.Count).Range.Paragraphs.SpaceAfter = False
所以我认为这会起作用:
Sub test22()
Set shet = ActiveSheet
Set wdDoc = ActiveDocument
shet.Range("A1:B4").Copy
wdDoc.Paragraphs(1).Range.Paste
wdDoc.Tables(activedocument.Tables.Count).Range.Paragraphs.SpaceAfter = False
End Sub
请注意,我在 Excel 中复制了一个表格并使用了 PasteExcelTable 命令。奇怪的是 Word 不允许我在录制宏时选择整个 Word 表,所以我只是摸索着得到这行代码。
关于Excel-Vba 宏在 word 中复制表格会产生不同的格式结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57022569/