【问题标题】:VBA: Trim Cells If Value in Range isVBA:如果范围内的值是,则修剪单元格
【发布时间】:2018-02-19 16:45:02
【问题描述】:

我面临以下挑战:

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

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”时,上述函数才应该起作用。

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

亲切的问候, 斯蒂芬

【问题讨论】:

    标签: vba excel trim


    【解决方案1】:

    使用 .Offset 的另一种方法

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

    【讨论】:

    • 只是好奇你为什么需要[] 来代替-2 ?与Offset(0, -2) 不一样吗?
    • 有一次(几年前)出错,从那以后我一直在使用方括号。
    【解决方案2】:

    只需修改您的行:

    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”列中的值是否等于“YES”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多