使用for循环和if语句清除单元格的内容

时间:2017-09-20 19:08:38

标签: excel excel-vba for-loop if-statement vba

我有这段代码:

For Each cell In Worksheets("Sheet1").UsedRange
      If(Left(cell, 3) <> 574 Or Left(cell, 3) <> 584 Or Left(cell, 3) <> 233) Then cell.ClearContents
Next

代码purpuse是遍历电子表格中所有使用过的单元格,如果前三位数字不是574,233,584,则单元格将设置为空。

在我的电子表格中,我有值应该通过,前三位数等于574,233,584;但相反,循环删除电子表格中的所有内容。任何洞察我可能有的逻辑错误都会受到欢迎。

1 个答案:

答案 0 :(得分:3)

每当我看到IF语句的多个条件时,我立即考虑使用Select Case以便于阅读和维护。

For Each cell In Worksheets("Sheet1").UsedRange

    Select Case Left(cell,3)

        Case Is = 574, 584, 233 'do nothing
        Case Else: cell.ClearContents

    End Select

Next