VBA:如果范围内的值为,则修剪单元格

时间:2017-09-11 12:24:38

标签: excel vba excel-vba trim

我有以下挑战:

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

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

现在我需要实现一个检查,其中上述函数仅在单元格在另一列中标记为“是”时才有效。

E.g。 如果在A列中单元格值为“YES”,则只有上述函数才适用于C列中的同一单元格。

亲切的问候, 斯蒂芬

2 个答案:

答案 0 :(得分:1)

只需修改您的行:

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

为:

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

这会检查与rC相同的行中“A”列中的值是否等于“是”

答案 1 :(得分:0)

使用.Offset的替代方法

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