excel - "Nullify"在文档中粘贴Excel表格之前的Word样式

标签 excel vba ms-word

我有一个代码 ( Full code can be found here ) 用于将数据从 Excel 插入到嵌入的 Word 文档中。它读取单元格命令(案例)并根据它们向 Word 输入数据(参见上面的屏幕截图“main”、“attachment”、“table2”)。问题是,如果没有为某些 Case 定义样式,它会采用以前的样式。

我在复制 Excel 范围并将其插入我的文档时遇到了问题。代码采用样式“附件”参数并将具有预定义样式“附件”的表格插入 Word。如何在将范围插入 Ms Word 之前使以前的样式参数为空?

这是我插入表格的代码:

                  Set xlSht = Sheets("Service")
               Case "table2"
        xlSht.Range("B11:I20").Copy
     With wdRng
  .Paragraphs.Last.Range.PasteExcelTable False, False, False
  .Tables(.Tables.Count).AutoFitBehavior wdAutoFitWindow
End With

VBA代码结果:
enter image description here

手动复制:
enter image description here

在 Excel 中:
enter image description here

最佳答案

如果您想“取消”所有样式信息,请在粘贴表格之前执行此操作。 Word中的“null”样式为Normal样式;这种风格在插入表格时也是“最安全的”*。

以下代码片段基于问题中的代码,首先应用样式,然后粘贴表格。

Dim rngPara as Word.Range
Set rngPara = .Paragraphs.Last.Range
rngPara.Style = wdStyleNormal
rngPara.PasteExcelTable False, False, False

*除了段落和字符格式之外,Word 还具有表格样式。这些是一种特殊的样式,用于确定表格格式(与段落或字符格式相反)。只有在使用 Normal 样式格式化的空段落中创建表格时,这些才会正确应用。

关于excel - "Nullify"在文档中粘贴Excel表格之前的Word样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54513068/

相关文章:

arrays - 使用数组的 VBA 自动筛选 - 如果不在筛选列表中则忽略条件

java - 如何使用 apache poi 将 .docx 转换为 .doc

.net - 有哪些基于 Open XML SDK 构建的框架?

excel - 以 MM 为单位计算平均值 :SS in excel

c# - 如果 Excel 未打开,则无法更新 Excel 文件?

search - 如何索引和搜索 .doc 文件

c# - 在保护模式下从 C# 打开 Winword

excel - 如果 1 列或两列都有单词,则输入文本

excel - 将单元格文本与另一个单元格文本的最多 100 个前导字符连接起来

excel - 如何在 Excel 中将 2 个独立的数组组合成一个广泛的组合列表