使用VBA / Excel搜索和替换

时间:2013-05-28 16:46:35

标签: excel vba excel-vba

有一个恼人的Excel / VBA问题,我似乎无法解决这个问题 - 非常感谢任何帮助。

我在电子表格中有一个公式,说明如果左边的单元格= 1,那么单元格本身= on,如果没有,=“off”。 是否有可能编写一些VBA搜索并替换在运行时“关闭”为“totally_off”的代码?

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

感谢您的帮助。

2 个答案:

答案 0 :(得分: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”的公式将保持不变。

答案 1 :(得分:0)

不需要VBA - 只需使用AutoFilter:

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

完成!