Vba 替换并执行自动图文集

Vba 替换并执行自动图文集,vba,replace,ms-word,Vba,Replace,Ms Word,我是VBA新手;我正在尝试创建一个应用程序,我希望在其中放置文本,并能够在文档中替换文本时执行自动文本命令(F3) 我的问题是在替换光标丢失后,我收到一条消息,表示不存在用于选择的有效代码。有人能帮忙吗 我正在使用以下代码: Sub VbaAutomation() With Selection.Find .ClearFormatting .Text = "-A11" .Replacement.ClearFormatting .Replacement.Text

我是VBA新手;我正在尝试创建一个应用程序,我希望在其中放置文本,并能够在文档中替换文本时执行自动文本命令(F3)

我的问题是在替换光标丢失后,我收到一条消息,表示不存在用于选择的有效代码。有人能帮忙吗

我正在使用以下代码:

Sub VbaAutomation()
  With Selection.Find
    .ClearFormatting
    .Text = "-A11"
    .Replacement.ClearFormatting
    .Replacement.Text = ""
    .Execute Replace:=wdReplaceAll, Forward:=True, _
  Wrap:=wdFindContinue   
    .Execute
    SendKeys "{F3}"
  End With
End Sub
更好的解决方案是代替替换文本和执行代码


我想执行宏,它用自动文本代码替换任何构建块代码。例如,我的word文档有
ABCD,CDEF
代码和宏自动迭代构建块代码,并将其替换为精确的自动文本代码段落。

这不是您查找并替换为vba的方式。您不需要使用F3。您必须收集
的结果。执行
,并在找到某个内容时进行迭代

尝试此操作,以替换当前文档中出现的所有
-A11

子VbaAutomation()
关于错误转到错误陷阱
朦胧的我一样长,疯狂的我一样长
我们发现它是布尔型的
isFound=True
crazyUpLimit=1000
请稍等片刻(我找到了,我就发疯了)
选择。查找
.ClearFormatting
.Text=“-A11”
.Replacement.ClearFormatting
.Replacement.Text=“”
“这是一个技巧,只要你发现
isfind=.Execute Replace:=wdReplaceAll,Forward:=True,Wrap:=wdFindContinue
以
i=i+1
环
出口接头
文件模式错误:
MsgBox ActiveDocument.Name&“:未知的文档模式(&fPattern&“应为”)
出口接头
错误陷阱:
嘟嘟声
MsgBox“失败”&Chr(13)和“错误号:&err&Chr(13)和Error(err)
端接头
PS:添加了常规错误处理和一个
crazyUpLimit
,以避免阻塞您的电脑-这对我来说通常很有用


分享与享受

这不是找到vba并将其替换为vba的方式。您不需要使用F3。您必须收集
的结果。执行
,并在找到某个内容时进行迭代

尝试此操作,以替换当前文档中出现的所有
-A11

子VbaAutomation()
关于错误转到错误陷阱
朦胧的我一样长,疯狂的我一样长
我们发现它是布尔型的
isFound=True
crazyUpLimit=1000
请稍等片刻(我找到了,我就发疯了)
选择。查找
.ClearFormatting
.Text=“-A11”
.Replacement.ClearFormatting
.Replacement.Text=“”
“这是一个技巧,只要你发现
isfind=.Execute Replace:=wdReplaceAll,Forward:=True,Wrap:=wdFindContinue
以
i=i+1
环
出口接头
文件模式错误:
MsgBox ActiveDocument.Name&“:未知的文档模式(&fPattern&“应为”)
出口接头
错误陷阱:
嘟嘟声
MsgBox“失败”&Chr(13)和“错误号:&err&Chr(13)和Error(err)
端接头
PS:添加了常规错误处理和一个
crazyUpLimit
,以避免阻塞您的电脑-这对我来说通常很有用


分享与享受

您是否在整个文档中自动执行自动文本功能? 我需要在所有文档中执行它,这是可能的吗


J.Chomel

您是否在整个文档中自动执行自动文本功能? 我需要在所有文档中执行它,这是可能的吗


J.Chomel

我不完全理解你的意图,但注意到似乎没有人想建议你,我冒昧地问F3与你想要实现的目标有什么关系。您的代码在所选文本中查找“-A11”,并将其替换为“”。没有提到“构建块代码”或“自动文本代码”,如果F3与这两个代码中的任何一个或两者都相关,那么它与找到它的代码的其余部分没有关系。值得一提的是:您应该接受您的概念只允许将“-A11”替换为“”。没什么了。谢谢。是的,F3将运行自动文本和构建块。我想替换-p1,这样我就可以验证构建块了。我们正在谈论彼此。(1) F3调用一个程序。在VBA中,如果要调用程序,需要知道其名称。但是,我非常确定F3调用的程序不是VBA宏。因此,您必须使用正确的VBA语法调用它来运行它所属的程序类型。(2) 如果要用构建块替换文档中的占位符,则需要指定构建块,找到占位符并替换。如果您可以将构建块加载到
Find
方法的
Replacement.Text
属性中,您可以使用代码的一个版本来实现此目的。谢谢F3用作sendKeys{“F3”}。因此,基本上我想回复文本,然后在回复后同时执行F3键。您是否得到
SendKeys“{F3}”
在不修改文本的情况下工作?我不完全理解您的意图,但注意到似乎没有人想建议您,我冒昧地问F3与您想要实现的目标有什么关系。您的代码在所选文本中查找“-A11”,并将其替换为“”。没有提到“构建块代码”或“自动文本代码”,如果F3与这两个代码中的任何一个或两者都相关,那么它与找到它的代码的其余部分没有关系。值得一提的是:您应该接受您的概念只允许将“-A11”替换为“”。没什么了。谢谢。是的,F3将运行自动文本和构建块。我想替换-p1,这样我就可以验证构建块了。我们正在谈论彼此。(1) F3调用一个程序。在VBA中,如果要调用程序,需要知道其名称。但是,我非常确定F3调用的程序不是VBA宏。因此,您必须使用正确的VBA语法调用它来运行它所属的程序类型。(2) 如果要替换中的占位符