【问题标题】:Using Search and Replace with VBA/Excel使用 VBA/Excel 进行搜索和替换
【发布时间】:2013-05-28 16:46:34
【问题描述】:

遇到了一个令人讨厌的 Excel/VBA 问题,我似乎无法解决 - 非常感谢任何帮助。

我在电子表格中有一个公式,它表示如果左侧的单元格 =1,则单元格本身 =on,如果不是,则 =off。 是否可以编写一些 VBA 搜索并替换运行时将“关闭”变为“完全关闭”的代码?

目前它似乎只是在编辑公式本身,而我真的希望它删除该单元格中的所有内容并将其替换为短语“totally_off”

感谢您的帮助。

【问题讨论】:

  • 如果我理解正确,您可以搜索并替换寻找 *off* 并替换为 totally off
  • 实际上,问题是这将替换公式中的任何单元格关闭,我只想更改这些单元格符合输出“关闭”标准的单元格
  • 谢谢,我现在明白了。
  • 您仍然可以按照@chuff 的建议进行操作。只需在替换之前单击“匹配整个单元格内容选项”即可。

标签: vba excel


【解决方案1】:

以下代码应该可以工作。只需将B1:B10 范围替换为您要更改的公式所在的范围。该过程会测试公式中单元格左侧的单元格的值。如果值为零,则将公式替换为“完全关闭”。

Sub totally_off()
    Dim rng As Range
    Dim cell As Variant
    Set rng = Range("B1:B10")
    For Each cell In rng
        If cell.Offset(0, -1).Value = 0 Then
            cell.Value = "totally off"
        End If
    Next cell
End Sub

这是一个非 VBA、非搜索和替换的替代方案。

  • 使用主页功能区上的Sort and Filter / Filter 在公式列上设置过滤器。
  • 从列的下拉菜单中选择“关闭”。
  • 在过滤列的第一个单元格中键入“完全关闭”并将其复制到列的底部。
  • 然后取下过滤器。评估为“on”的公式将保持不变。

【讨论】:

    【解决方案2】:

    不需要 VBA - 只需使用自动过滤器:

    • 使用开/关公式选择列
    • 应用自动过滤器(Ctrl-Shift-L
    • 过滤off
    • 再次选择所有值
    • 只需在公式栏中输入替换值totally_off - 但按 Ctrl-Enter

    完成!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-13
      相关资源
      最近更新 更多