如果删除整个列,如果它是空的
我有列第1行是..
IF Column C doesn't have data in entire column then delete CDEF IF Column D doesn't have data in entire column then delete DEF IF Column E doesn't have data in entire column then delete EF IF Column F doesn't have data in entire column then delete F
标题NN的方式也一样
IF Column G doesn't have data in entire column then delete GHIJKLMN IF Column H doesn't have data in entire column then delete HIJKLMN IF Column I doesn't have data in entire column then delete IJKLMN IF Column J doesn't have data in entire column then delete JKLMN IF Column K doesn't have data in entire column then delete KLMN IF Column L doesn't have data in entire column then delete LMN IF Column M doesn't have data in entire column then delete MN IF Column N doesn't have data in entire column then delete N ABCDEFGHIJKLMNOPQR TI1 TE2 TT1 TT2 TT3 TT4 NN1 NN2 NN3 NN4 NN5 NN6 NN7 NN8 CMT K2 K3 BLAH BLAH
我会通过添加额外的行来完成这件事(你可以随时隐藏它)。
假设你的标题在第1行,然后在第2行添加一个额外的(帮助者)行。
-
在C2中,input下面的公式(用适当的值代替
C30
):=COUNTA(C3:C30)
-
在D2中,input以下公式:
=IF(C2=0,0,COUNTA(D3:D30))
-
将该公式拖到E&F
-
在G中重做C的公式
- 在H中重做D的公式并拖到N上
等等
现在只需要编写一个非常简单的macros来删除row2的值为0的列。
这似乎是对我来说最简单的方法,但有很多其他的方法。
希望这可以帮助!!
这个macros你的第一个位 – 第二个阶段将非常相似。
你需要把5
秒钟的时间变长。
一般不喜欢GoTo
但是我在这个代码中使用了它。
Sub firstbit() If Excel.WorksheetFunction.CountA(ActiveSheet.Range("C2:C5")) = 0 Then Excel.ActiveSheet.Range("C2:F5").clearcontents GoTo FirstStageComplete: End If If Excel.WorksheetFunction.CountA(ActiveSheet.Range("D2:D5")) = 0 Then Excel.ActiveSheet.Range("D2:F5").clearcontents GoTo FirstStageComplete: End If If Excel.WorksheetFunction.CountA(ActiveSheet.Range("E2:E5")) = 0 Then Excel.ActiveSheet.Range("E2:F5").clearcontents GoTo FirstStageComplete: End If If Excel.WorksheetFunction.CountA(ActiveSheet.Range("F2:F5")) = 0 Then Excel.ActiveSheet.Range("F2:F5").clearcontents End If FirstStageComplete: End Sub