首页 > 解决方案 > VBA清除单元格旁边的行内容

问题描述

特定列中的每个单元格要么包含“x”,要么为空。我想创建一个查找所有 x 的 sub,然后删除同一行右侧所有单元格的内容。我不确定如何在下面的 IF 语句中正确选择和清除行的内容。任何帮助深表感谢。

    Sub clearContents()
        With Sheets("Main")
            Dim c As Range
            For Each c In Range("B1:B23")
                If c.Value = "x" Then
                    c.Offset(0, 1).End(xlToRight).clearContents
                End If
            Next c
         End With
    End Sub

标签: excelvba

解决方案


尝试这个。顺便说一句,您在 With 语句所需的 Range 前面缺少一个点。

Sub clearContents()
    Dim c As Range, c1 As Long
    With Sheets("Main")
        For Each c In .Range("B1:B23")
            If c.Value = "x" Then
                c1 = Cells(c.Row, Columns.Count).End(xlToLeft).Column
                If c1 > 2 Then c.Offset(0, 1).Resize(, c1 - 2).clearContents
            End If
        Next c
     End With
End Sub

推荐阅读