VBA替换selection.text但保持格式化

时间:2015-08-12 16:20:48

标签: vba ms-word word-vba

问题说明

我正在尝试更改word文档中的某些文本而不会丢失格式。更改不会修改文本的长度。

示例

我从所选文字开始:

你好那里这是一些带位的文字

我想更改字符,但保留文字。假设我为每个角色添加一个,我们得到:

ifmmp uifsf uijt jt tpnf ufyu xjui cjut jo cpme

然后我可以使用:

Selection.text =“ifmmp uifsf uijt jt tpnf ufyu xjui cjut jo cpme”

(当然不是硬编码,而是从接收文本的方法返回该字符串。)

然后我更新了文本,但它丢失了所有格式。理想情况下,我的目标是结束:

ifmmp uifsf uijt jt tpnf ufyu xjui cjut jo cpme

我能想到什么,但不是很好

我可以想到一个解决方案,但它似乎相当hacky并且可能会破坏。我的解决方案是遍历所选区域,一次选择一个字符并使用Selection.TypeText覆盖它。希望如果我很幸运,它不会因为新行字符或者路上有图像/表格而中断。

是否有更明智的方法来更改选择的文本而不更改其格式?

0 个答案:

没有答案