如题所述
按Alt+F11,打开VBA编辑器,插入一个模块,把下面的代码打入去,如果粘贴进去的,请你将多余的内容删除,按F5执行
Sub 宏1()LastColumn = Cells(1, Columns.Count).End(xlToLeft).Column '有多少列
For i = LastColumn To 1 Step -1 '从最后一列开始循环
If Application.WorksheetFunction.CountIf(Range(Columns(i), Columns(i)), 0) > 22 Then '假如超过22个0
Range(Columns(i), Columns(i)).Select '选择该列
Selection.Delete Shift:=xlToLeft '删除
End If '结束假如
Next '下一列
End Sub
测试通过。
温馨提示:答案为网友推荐,仅供参考
第1个回答 2018-09-09
以下代码可满足你的要求:
Sub 删除多0的列()For c = ActiveSheet.UsedRange.Columns.Count To 1 Step -1
If Application.CountIf(Columns(c), 0) > 22 Then Columns(c).Delete
Next
End Sub
第2个回答 2018-09-06
某列 0的单元格个数>22,就删除该列?
Sub 删除()
Dim K, X
For K = 10 To 1 Step -1
X = WorksheetFunction.CountIf(Columns(K), 0)
If X >= 22 Then
Columns(K).Select
Columns(K).Delete
End If
Next
End Sub
Sub 删除()
Dim K, X
For K = 10 To 1 Step -1
X = WorksheetFunction.CountIf(Columns(K), 0)
If X >= 22 Then
Columns(K).Select
Columns(K).Delete
End If
Next
End Sub
第3个回答 2018-09-06
第4个回答 2018-09-06
Sub Delcolumn()
Dim i%
For i = 1 To ActiveSheet.Range("a1").End(xlToRight).Column
If Application.WorksheetFunction.CountIf(Columns(i), 0) > 22 Then
Columns(i).Delete Shift:=xlToLeft
End If
Next
End Sub
Dim i%
For i = 1 To ActiveSheet.Range("a1").End(xlToRight).Column
If Application.WorksheetFunction.CountIf(Columns(i), 0) > 22 Then
Columns(i).Delete Shift:=xlToLeft
End If
Next
End Sub
将代码复制过去执行即可