1

行1が見出している列があります。

IF Column C doesn't have data in entire column then delete C D E F
IF Column D doesn't have data in entire column then delete D E F
IF Column E doesn't have data in entire column then delete E F
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 G H I J K L M N 
IF Column H doesn't have data in entire column then delete H I J K L M N 
IF Column I doesn't have data in entire column then delete I J K L M N 
IF Column J doesn't have data in entire column then delete J K L M N 
IF Column K doesn't have data in entire column then delete K L M N 
IF Column L doesn't have data in entire column then delete L M N 
IF Column M doesn't have data in entire column then delete M N 
IF Column N doesn't have data in entire column then delete N


A   B   C   D   E   F   G   H   I   J   K   L   M   N   O   P   Q   R
TI1 TE2 TT1 TT2 TT3 TT4 NN1 NN2 NN3 NN4 NN5 NN6 NN7 NN8 CMT K2  K3  
BLAH    BLAH
4

2 に答える 2

2

これを行うには、余分な行を追加して問題を解決します (後でいつでも非表示にすることができます)。

見出しが行 1 にあり、行 2 に余分な (ヘルパー) 行を追加するとします。

  • C2 に次の式を入力します (C30適切な値に置き換えてください)。

    =COUNTA(C3:C30)

  • D2 に、次の式を入力します。

    =IF(C2=0,0,COUNTA(D3:D30))

  • その数式を E & F にドラッグします

  • G で C の式をやり直す

  • D の式を H でやり直し、N にドラッグします

...など

これで、row2 の値が 0 の列を削除するための非常に単純なマクロを作成するだけです。

それが私にとって最も簡単な方法のように思えましたが、他にも多くの方法があります。

お役に立てれば!!

于 2013-02-21T15:35:23.220 に答える
0

このマクロは最初の部分を行います - 2 番目の段階は非常に似ています。

5テーブルの長さに合わせて s を変更する必要があります。

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
于 2013-02-21T17:11:00.540 に答える