简单问题:用VBA在Word文档中插入字符串,覆盖对应位置的原字符——怎么实现?

时间:2022-02-19 23:38:23
比如说,要在文档中插入串“abc”
用代码:Options.Overtype = True
        Selection.TypeText "abc"
        Options.Overtype = False
执行结果是只在插入点插入串“abc”,按说插入点后面的3个字符应该被覆盖,但却只是向后移动了,没被覆盖。
怎么回事?该怎么办?

5 个解决方案

#1


只要加上下面一句,就与上一次插入或改写状态相反的状态
Overtype = Not Overtype

#2


我试过,这样执行报告“Overtype”没有定义。 Overtype其实就是Options中的一个属性
所以我的代码才有   Options.Overtype = True
这样效果确实相当于按下“Insert”键,但   Selection.TypeText "abc"
的结果没有区别。

#3


找到问题所在了,Overtype这个属性到底在哪里定义?
当我录制宏时,Overtype单独出现,执行没有问题
当我自定义宏时,用 Overtype = Not Overtype ,执行说变量没有定义,
怎么回事?

#4


不行啊,无论怎样执行,都无法覆盖原字符:只是“Insert”串“abc”,而不是“Overwrite”

#5


Selection.MoveRight Unit:=wdCharacter, Count:=8, Extend:=wdExtend
Selection.TypeText Text:="asd"
Count:=8 选中字符个数
即先看要替换多少个字符

#1


只要加上下面一句,就与上一次插入或改写状态相反的状态
Overtype = Not Overtype

#2


我试过,这样执行报告“Overtype”没有定义。 Overtype其实就是Options中的一个属性
所以我的代码才有   Options.Overtype = True
这样效果确实相当于按下“Insert”键,但   Selection.TypeText "abc"
的结果没有区别。

#3


找到问题所在了,Overtype这个属性到底在哪里定义?
当我录制宏时,Overtype单独出现,执行没有问题
当我自定义宏时,用 Overtype = Not Overtype ,执行说变量没有定义,
怎么回事?

#4


不行啊,无论怎样执行,都无法覆盖原字符:只是“Insert”串“abc”,而不是“Overwrite”

#5


Selection.MoveRight Unit:=wdCharacter, Count:=8, Extend:=wdExtend
Selection.TypeText Text:="asd"
Count:=8 选中字符个数
即先看要替换多少个字符