代码之家  ›  专栏  ›  技术社区  ›  karateschnitzel

VBA:如果范围内的值为

  •  1
  • karateschnitzel  · 技术社区  · 7 年前

    在工作表中,我需要通过修剪功能删除特定单元格范围内不需要的空白。这在以下代码中已经可以正常工作:

    Sub remove_blanks()
    
    Dim rC As Range
    
    Application.ScreenUpdating = False
    
    For Each rC In ActiveSheet.Range("C1:C5000")
        If Not (rC.HasFormula) Then rC = Trim(rC)
    Next
    
    Application.ScreenUpdating = True
    
    End Sub
    

    现在,我需要实现一个检查,其中只有当一个单元格在另一列中标记为“YES”时,上述函数才能工作。

    例如。

    谨致问候,

    2 回复  |  直到 7 年前
        1
  •  2
  •   Shai Rado    7 年前

    只需修改您的行:

    If Not (rC.HasFormula) Then rC = Trim(rC)
    

    If Not (rC.HasFormula) And Range("A" & rC.Row).Value = "YES" Then rC = Trim(rC)
    

    这将检查“A”列中的值是否与 rC

        2
  •  0
  •   Kostas K.    7 年前

    使用的替代方法。抵消

    If Not rC.HasFormula And rC.Offset(0, [-2]).Value = "YES" Then rC = Trim(rC)