Excel-Vba 宏在 word 中复制表格会产生不同的格式结果

标签 excel vba ms-word

我在 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

Table Differences

最佳答案

我重现了你的问题。似乎它在表格的每一行之后添加了一个空格。因此,在 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/

相关文章:

VBA 尝试将完整字符串与部分字符串匹配以查找相应的值

VBA - 如何将新行命令 (\n) 或制表符命令 (\t) 发送到 PowerPointS 形状的 textbox.textrange.text

更改表格颜色的 VBA 宏

excel - VBA搜索从excel中替换word文档中的文本

excel - 如何在Excel VBA中将日期格式更改为数字?

excel - 从不同的 Excel 工作表自动导入 SQL 表

python - 使用 Python 更新多个 Excel 工作表

excel - 在 VBA 编辑器中创建宏

vba - 宏中的 Excel 函数

delphi - 是否可以知道OLE对象的实际高度?