excel - 使用 VBA 从 Excel 创建 WordDoc 时如何将替换文本设置为项目符号格式

标签 excel vba ms-word format

您好,提前谢谢您。

我正在使用 VBA 从 Excel 文件创建一个非常复杂的 Word 文档。 应可以激活某些内容,并且单元格中写入的文本应传输到 Word 文档。我已经做好了。但在某些部分,它必须采用项目符号格式。 现在,我在 Word 模板中使用诸如“<< replacementPoint1 >>”之类的标签,使用像一行代码一样简单的内容查找它们并将其替换为 ReplacementText:

With WordDoc.Content.Find
   .Execute FindText:=ReplacementTextF, ReplaceWith:=ReplacementText, Replace:=2
End With

但是我如何将 replacementText 设置为项目符号或数字,如下所示:

  • ReplacementText 这里还有一些文字......

    1. ReplacementText 这里还有一些文字......

最佳答案

有多种可能的方法。一种是不使用 wdReplaceAll - 相反,代码将一次执行一个“查找”,应用所需的格式,然后一次又一次循环查找/替换和格式化,直到找不到更多内容。一般来说,Stack Overflow 和 Internet 上有很多这种方法的示例。

更快的方法是利用 Word 可以应用某些类型的格式作为替换功能的一部分这一事实。在Word UI中,按Ctrl+H查看“查找和替换”对话框;单击“更多”,然后单击“格式”以查看可能性。在这里,项目符号和编号不是是一个选择...但样式是。

如果您使用模板来生成这些文档(强烈推荐),请定义要在模板中使用的项目符号/编号作为样式。如果未使用模板,代码可以即时创建样式定义。

指定样式名称(区分大小写!)作为为 Find 定义的 Replacement 属性的一部分,并将 Format 属性设置为真的。像这样的东西:

Dim rngFind as Word.Range 'Object if late-binding
Set rngFind = WordDoc.Content
With rngFind.Find
  .ClearFormatting
  .Replacement.ClearFormatting
  .Replacement.Style = "My style"
  .Format = True
  .Execute FindText:=ReplacementTextF, ReplaceWith:=ReplacementText, Replace:=2
End With

关于excel - 使用 VBA 从 Excel 创建 WordDoc 时如何将替换文本设置为项目符号格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53315018/

相关文章:

excel - 按数据类型隔离数据

c# - 是否可以更新使用 Syncfusion 的 DocIO 库生成的 Word 文档的目录(TableOfContents)?

c# - 通过 OleDb 使用 Microsoft Access 数据库引擎将 DataTable 插入 Excel

VBA - 将表行复制并粘贴到另一个表

每个工作表循环的 Excel VBA

excel - VBA简单宏复制公式

Excel VBA : How to remove substrings from a cell?

Excel VBA 不会粘贴前导零

c# - Office 2010/2013 的 Interop.Word 打印预览对话框

java - 如何以编程方式从 doc 和 docx 文件中删除用户身份信息?