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

我有以下挑战:

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

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 

现在我需要实现一个检查,只有当一个单元格在另一列中被标记为“是”时,上述函数才会起作用。

例如,如果在列A中的单元格值为“是”,那么只有上述函数才能用于列C中的同一单元格。

亲切的问候,斯蒂芬

只要修改你的行:

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

至:

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

这将检查同一行中的列“A”中的值等于“是”

使用.Offset的另一种方法

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