在将A列和B列与C列和D列进行比较的地方,我的范围有所不同。此数据是从数据透视表中提取的,因此行的长度可以变化。我有从穿过第130行的数据透视表中提取的公式。我想做的是删除A和B都为空或C和D都为空的所有单元格。不幸的是,它只是删除一些多余的单元格然后停止。
以下是我当前正在使用的代码(任何建议将不胜感激)
Dim i As Long
For i = 6 To 200
If Cells(i, 1) = "0" And Cells(i, 2) = "0" Then
Cells(i, 1).Delete Shift:=xlUp
Cells(i, 2).Delete Shift:=xlUp
Else
If Cells(i, 3) = "0" And Cells(i, 4) = "0" Then
Cells(i, 3).Delete Shift:=xlUp
Cells(i, 4).Delete Shift:=xlUp
End If
End If
Next i
正如我在评论中所说,删除单元格时,您需要向后工作或递减计数器。
For i = 200 to 6 Step -1
您可能需要进行的所有更改。
假设数据看起来像这样:
Row Data
1 5
2 0 <-- Delete Row 2 [i = 2]
3 0
4 7
如果删除第2行,则第3行会上移,而我的计数器会跳过第3行。
Row Data
1 5
2 0 <-- Skipped
3 7 <-- Row 3 Not Zero [i = 3]
如果向后工作,它的行为应为:
Row Data
1 5
2 0
3 0 <-- Delete Row 3 [i = 3]
4 7
Row Data
1 5
2 0 <-- Delete Row 2 [i = 2]
3 7
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句