gpt4 book ai didi

excel - 标记所有不包含两个给定单词的单元格

转载 作者:行者123 更新时间:2023-12-04 21:50:32 25 4
gpt4 key购买 nike

我正在编写一个代码,它应该在一个范围内用红色标记所有不包含单词 "bel" 的单元格和 "hsa" .

Sub Check()
Range("c2:c49").Select

For Each cell In Selection
If (cell.Value <> "bel" Or cell.Value <> "hsa") Then
cell.Interior.Color = RGB(255, 0, 0)
End If
Next cell
End Sub

如果我只有一个论点,它会起作用。使用上面的两个参数,它将范围内的所有单元格标记为红色。

Or运营商错了?

最佳答案

请注意,此任务可以通过 Conditional Formatting 解决。它的优点是,如果数据发生变化,它会自动更新,并且您不需要一遍又一遍地运行该过程。

以下只是为了改进您的编码:

  • Avoid using Select in Excel VBA . • 而是直接使用范围并指定范围在哪个工作表中。如果您不这样做,Excel 会猜测您打算使用哪个工作表,它可能会失败:
    For Each cell In Worksheets("MySheet").Range("C2:C49")
  • 我建议始终激活 Option Explicit并声明所有变量。这是一个非常好的做法,可以防止许多错误:在 VBA 编辑器中转到工具 › 选项 › Require Variable Declaration .
  • 您的实际问题是,如果您想同时排除 "bel" "hsa"那么(当然)你需要使用 And运算符(operator)。
    Cell.Value <> "bel" And Cell.Value <> "hsa"

    请注意 <>= 相比总是改变运算符的逻辑 or/and .或者,您可以使用:
    Not (Cell.Value = "bel" Or Cell.Value = "hsa")

    …这会给你同样的结果。使用对您来说更容易理解的那个。


  • 所以你最终会得到类似的东西:
    Option Explicit

    Public Sub ValidateAndColorCells()
    Dim CheckRange As Range
    Set CheckRange = Worksheets("YourSheet").Range("C2:C49") 'Always specify the sheet!

    Dim Cell As Range '<-- declare ALL your variables
    For Each Cell In CheckRange
    If Cell.Value <> "bel" And Cell.Value <> "hsa" Then
    Cell.Interior.Color = RGB(255, 0, 0)
    End If
    Next Cell
    End Sub

    关于excel - 标记所有不包含两个给定单词的单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55136788/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com