【问题标题】:How can I find a word with a new line in the VBA editor using find and replace?如何使用查找和替换在 VBA 编辑器中找到带有新行的单词?
【发布时间】:2021-10-28 16:31:57
【问题描述】:

我想在我的代码中查找所有“End”语句,但跳过所有“End x”语句,如“End If”、“End Sub”、“End function”等 - - 只是纯粹的“结束”。我的想法是使用模式匹配,但我不确定该怎么做。

我已经尝试过使用“End\n”和“End[\n]”。

有人知道如何搜索以换行符结尾的单词吗?

【问题讨论】:

  • 我很好奇这个用例是什么?您是否只是有一个巨大的模块希望节省一点时间,或者您是否设想过某种程序化应用程序?

标签: vba vbe


【解决方案1】:

VBA 编辑器中的“查找”功能不支持这种参数/功能。

您将不得不手动单步执行结果并跳过您不想跳过的那些,或者手动修改您不想捕获的“End”实例,然后搜索和替换,最后恢复所有结束实例回到你想要的状态。

【讨论】:

  • 好的,谢谢你告诉我。那么模式匹配选项有什么用呢?
  • @ScottC 不幸的是,不多。我认为模式匹配功能实际上只适用于“查找”功能,而不是“查找和替换”功能。您可以使用 ?、*、!、.. 等 IIRC,但自从我上次尝试使用它已经有好几年了。我认为今天没有任何文档可以保存下来……MSFT 可能已经有 20 年没有接触过该代码了。
  • @ScottC,TylerH 是对的; MSFT 甚至没有费心从 WordVBA 更新查找和替换引擎;如果您认为 VBA Regex 已过时,请等到您必须使用 Word VBA 查找和替换...最好的来源来自 Graham Mayor。但坚持使用正则表达式(模式匹配)。 Word Find and Replace 代替 Regex 的唯一用途是因为使用它可以在插入文本后保留格式;使用正则表达式,您必须自己重新格式化......在 VBA 编辑器中没有用。
  • 我不确定你想用它做什么,所以尝试将你的代码粘贴到 Word 中,按 Ctrl+H 并在查找内容中插入End^p,在替换为中插入End。如果我误解了您的问题,我深表歉意。
猜你喜欢
  • 1970-01-01
  • 2021-01-02
  • 2023-01-20
  • 2017-09-18
  • 2011-07-28
  • 2011-04-25
  • 2023-01-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多