我想从下面的表 A 这样的数据开始,然后通过删除包含的单元格-1
并折叠每列以消除空单元格来生成下面的表 B 这样的新表。
我知道如何手动执行此操作,但我需要多次更新表 A 并每次评估表 B,因此我正在寻找一个自动化过程。是否有任何函数组合可以实现这一点?
我已经编写了以下宏。运行一次应该就可以了。但是,出于某种原因,我需要运行几次才能最终获得表 B 的结果。这是什么原因?
Sub Macro1()
Dim i As Integer, j As Integer
For i = 1 To 10
For j = 1 To 5
If Cells(i, j).Value = -1 Then
Cells(i, j).Select
Selection.Delete Shift:=xlUp
End If
Next j
Next i
End Sub
答案1
循环遍历单元格并向下删除其中一些单元格同时向上移动其他单元格会导致宏不会检查所有单元格。
这里的简单解决方案是向上移动:
For i = 10 To 1 step -1