【问题标题】:Use "Find and replace" within VBA to replace multiple rows?在 VBA 中使用“查找和替换”来替换多行?
【发布时间】:2021-01-02 10:52:07
【问题描述】:

我在 VBA 中创建了一个简单的代码来隐藏和显示某些列,但现在我想使用“查找和替换”窗口替换所有模块中的部分代码。

(请原谅我的编码知识非常低……我真的需要解决这个问题)

例如我有一个代码:

' Hide column "Region"
Range("A:A").Select
Selection.EntireColumn.Hidden = True

并希望在所有模块中将其替换为:

' Hide column "Region" (INACTIVE)
Range("A:A").Select
Selection.EntireColumn.Hidden = False

我尝试使用 VBA 中的“查找和替换”窗口并在“查找内容”框中输入原始代码,但我最终只在框中显示第一行:

' 隐藏“区域”列

如何在“查找内容”框中键入代码以搜索整个代码?我尝试使用“^p”、“”、“\p”和“”在“查找内容”框中键入以下内容,但没有得到任何搜索结果:

' 隐藏列 "Region"^pRange("A:A").Select^pSelection.EntireColumn.Hidden = True

' 隐藏列“Region”Range("A:A").SelectSelection.EntireColumn.Hidden = True

' 隐藏列 "Region"\pRange("A:A").Select\pSelection.EntireColumn.Hidden = True

' 隐藏列“Region”Range("A:A").SelectSelection.EntireColumn.Hidden = True

等等……

我曾经成功做过一次,但我不记得我是怎么做到的!有人可以帮助我吗?

【问题讨论】:

  • 您实际上要查找和替换什么?我能看到的唯一区别是真/假。
  • 我正在尝试替换整个三行,因为它在许多不同的模块中多次出现。唯一的区别是我在第一行添加“(INACTIVE)”并在最后一行更改真/假。
  • 别以为你能做到。您最好参数化您的子/功能。一种解决方法可能是将其粘贴到 Word 中。
  • 现在当你提到它时,我想我上次可能已经通过将代码提取到 Word 并在那里查找和替换然后用新代码替换 VBA 中的代码来解决它......我会再试一次 - 非常感谢!
  • 通过避免选择,您可以将代码减少到一行。

标签: excel vba replace find


【解决方案1】:

我通过将每个模块中的代码复制到 Word 中并在那里使用“查找和替换”来替换所有地方的代码来修复它。

在 Word 中,“^p”在“查找内容”框中用作段落分隔符。

【讨论】:

    猜你喜欢
    • 2023-01-25
    • 1970-01-01
    • 2018-10-06
    • 2020-04-03
    • 2012-03-08
    • 2013-07-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多