Excel VBA:遍历范围并删除所有0值的列

我刚刚开始学习VBA,我一直在困扰一个问题,希望有人能帮助。

我想要做的是首先循环遍历dynamic范围中的每一行,我从另一个表中复制从58列中的第8列开始,并检查行中每个单元格中的值是“0”还是另一个值。

如果值是“0”,那么我希望它进入下一行并检查该值是否也为零。 如果所有单元格值都为0,则继续执行直到最后一行;如果单元格值不是0,则继续执行下一列。

如果列中的所有单元都为0,则在进入下一列之前,要删除该列。 对该范围内的所有列重复此过程。

最终的结果是,只有0值的初始范围内的所有列将被删除,而具有值的列将保留。

有人可以帮忙吗?

以下是我到目前为止的代码:

Dim CopyRange as Range Dim iRow as Range Set CopyRange = Range("H2", Range("H2").End(xldown)) For each iRow in CopyRange if iRow = "0" then activecell.offset(1,0).select else end if next iRow 

*删除列*转到下一列,重复其余列

试试这个简单的代码,

 Sub searchForZero() Dim i As Long, j As Long For i = 58 To 8 Step -1 j = Cells(Rows.Count, i).End(xlUp).Row If Application.WorksheetFunction.CountIf(Range(Cells(1, i), Cells(j, i)), 0) = j - 1 Then Columns(i).Delete End If Next i End Sub 

该代码从第58列循环到第8列,并删除其中全部为0的列。

注意: – 只有当你的数据从第1行开始时才有效。如果没有,你必须相应地修改'j'variables