用For循环清除行的内容

我有代码,devise循环通过每行中的单元格,并删除它们,除了A和O列。 当我运行这个代码时,它只会删除第二列。

我知道“行(Target.Row).ClearContents”行,但这不符合我的目的,因为我需要特定的列保持不变。

Dim i As Integer For i = 2 To i = 30 If i = 15 Then 'update i but do nothing i = i + 1 Else 'update i and clear contents of cell .Cells(Target.Row, i).Clear i = i + 1 End If Next 

For循环递增i,所以你不应该,而且这个语法是不正确的For i = 2 To i = 30

 Dim i As Long For i = 2 To 30 If i <> 15 Then .Cells(Target.Row, i).Clear Next 

从行中排除某些列的更快方法(不使用循环):

 With Target.Parent .Columns(15).Hidden = True .UsedRange.Rows(Target.Row).SpecialCells(xlCellTypeVisible).Clear .Columns(15).Hidden = False End With 

为什么要使用循环呢?

 Union(Range(.Cells(Target.Row,2),.Cells(Target.Row,14)), Range(.Cells(Target.Row,16),.Cells(Target.Row,30))).Clear