这个小程序应该在当前文件中每一个选中的文字中,替换掉索检到的部分,但不知道为什么看不到运行结果(是我操作、理解错了?)。
这个案例是《学习MS vba》中第7章第16个例子。
我把命令行发上来,请各位大神帮我解答下疑惑。
Sub TextWork16()Dim TextElem As TextElementDim MyMod As ModelReferenceSet MyMod = Application.ActiveModelReferenceDim MyElems As ElementEnumeratorSet MyElems = MyMod.GetSelectedElementsDim MyElem As Element While MyElems.MoveNext Set MyElem = MyElems.Current Select Case MyElem.Type Case msdElementTypeText Set TextElem = MyElem If InStr(1, TextElem.Text, "[BY]") > 0 Then TextElem.Text = Replace(TextElem.Text, "[BY]", "hhpdi") TextElem.Rewrite End If End Select WendEnd Sub
这段代码我测试没有问题呀。推测应该是您测试的问题。
请注意:①要替换的文字必须在当前模型中!!!②你需要首先用选择集选中要替换的所有文字串;③文字串中当然要含有[BY]这样的字符子串喽
【另外】请仔细读我们的发帖规则,插入代码时要用Insert Code功能,这样能支持代码的缩进,容易读一些。
Answer Verified By: 熊浩然
谢谢符老师。
不好意思,下次插代码的时候我会注意。
但是,您说的三个条件我都满足啊。
是不是存在什么细节上误会?
我的具体操作是:
1.选中文字(文字变色,确实是选中的状态)。
2.运行程序。
不好意思,我知道问题出在哪了,原来文本应该是'[BY]',我理解成了'BY'。让大家见笑了。