如果列中的单元格为空或值为“空”

时间:2017-02-10 20:22:00

标签: excel-vba vba excel

我有这段代码,想要重复50次,或者直到右边的单元格中没有值

Sub DeleteCellShiftLeft()  

    For i = 1000 To 1 Step -1        

        If (Cells(i, 2).Value = "") Then 

            Cells(i, 2).Delete shift:=xlToLeft

        End If     

    Next i 

End Sub

1 个答案:

答案 0 :(得分:1)

要检查右侧是否还有其他数据,您可以使用“查找”功能找到包含数据的最右侧单元格。

试试这个:

    ' Run the code 50 times
    For x = 0 to 50

        ' Use the Find function to locate the bottom rightmost cell with any content in it.
        Set BottomRightCell = ActiveSheet.Cells.Find(what:="*", After:=ActiveSheet.Range("A1"), LookIn:=xlFormulas, Lookat:= _
        xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious, MatchCase:=False)

        ' If the rightmost data is in column 2 or less (where you are deleting from), then exit the loop.
        If BottomRightCell.Column <= 2 Then
            Exit For
        End If

        ' Otherwise, call your code.
        DeleteCellShiftLeft()

    Next x

如果右侧单元格中没有更多数据,这应该会调用您的代码50次,或者停止调用它。

我希望这能解决你的问题。