【发布时间】:2020-07-04 22:21:35
【问题描述】:
我是 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 代码,宏会自动迭代构建块代码并将其替换为精确的自动文本代码段落。
【问题讨论】:
-
我不完全理解你的意图,但注意到似乎没有人愿意建议你我冒昧地问一个问题,F3 与你想要实现的目标有什么关系。您的代码在所选文本中查找“-A11”并将其替换为“”。没有提到“构建块代码”或“自动文本代码”,如果 F3 与其中任何一个或两者都有某种关联,它与它所在的其余代码无关。对于它的价值:你应该接受你的概念只允许用“”替换“-A11”。仅此而已。
-
谢谢 是的 F3 是运行自动文本和构建块。我想替换 -p1 以便我可以执行构建块
-
我们正在互相交谈。 (1) F3 调用程序。在 VBA 中,如果你想调用一个程序,你需要知道它的名字。但是,我很确定 F3 调用的程序不是 VBA 宏。因此,您必须使用正确的 VBA 语法调用它来运行它的程序类型。 (2) 如果您想用构建块替换文档中的占位符,您需要指定构建块,找到占位符并替换。如果您可以将构建块加载到
Find方法的Replacement.Text属性中,您可能会为此目的使用您的代码版本。 -
感谢 F3 用作 sendKeys {"F3"}。所以基本上我想复制文本,然后在复制后同时执行 F3 键。
-
您是否让
SendKeys "{F3}"工作而不对文本进行任何更改?