2016-09-09 7 views
0

問題は、指定したワークシートでマクロが機能しないことです。私は、列全体を削除し、特定の列が空白の場合は行全体を削除するための2つのサブルーチンを用意しています。私はWith Worksheets("OutPut")であると理解していた特定のワークシートに対しては動作させたいが、それでもアクティブなワークシートは切り捨てる。Excel VBA:特定のワークシートで特定の列が空白の場合、空白の列と行全体を削除します。

アクティブなワークシートが選択されている限り、意図したとおりに動作します。

Sub DeleteBlankColumns() 
    With Worksheets("OutPut") 
     Set MyRange = Worksheets("OutPut").UsedRange 
     For iCounter = MyRange.Columns.Count To 1 Step -1 
      If Application.CountA(Columns(iCounter).EntireColumn) = 0 Then 
      Columns(iCounter).Delete 
      End If 
     Next iCounter 
     End With 
End Sub 

そして、私は変換したいワークシートがアクティブな場合は、再度、動作しますCallそれらの両方にボタンが、あります

Sub QuickCull() 
    With Worksheets("OutPut") 
     On Error Resume Next 
     Columns("B").SpecialCells(xlBlanks).EntireRow.Delete 
     On Error Resume Next 
     Columns("C").SpecialCells(xlBlanks).EntireRow.Delete 
     On Error Resume Next 
     Columns("D").SpecialCells(xlBlanks).EntireRow.Delete 
     On Error Resume Next 
     Columns("E").SpecialCells(xlBlanks).EntireRow.Delete 
     End With 
End Sub 

。参考のため、これは既存の会社のマクロに追加することを意図しているため、アクティブなときにワークシート上で実行するだけでは機能しません。

ありがとうございました!最初のコードサンプルについて

+2

'With'を参照するシートに結ばれたすべての範囲オブジェクトの' .'をinfrontにする必要があります。例えば ​​'Application.CountA(.Columns(iCounter).EntireColumn)' –

+0

@ScottCraner plsが答えを出します。私は私の答えを書いた後であなたのコメントを見ただけですが、あなたはそれに値する –

+0

@iDevlopはあなたの答えを保ちます。 –

答えて

1

If Application.CountA(Columns(iCounter).EntireColumn) = 0 Then 
    Columns(iCounter).Delete 

If Application.CountA(.Columns(iCounter).EntireColumn) = 0 Then 
    .Columns(iCounter).Delete 

であるべきである(A "" 列の前に、シートを指定する)は、第2のコードサンプルについて

同じこと

+0

それは完全に列のために働いたが、私は行から何かを欠いている必要がありますか?私はそれをこのように修正するだろうか? ( "B")SpecialCells(.xlBlanks).EntireRow.Delete' – AlivePresumably

+1

@AlivePresumably '.'はxlBlanksではなくColumns(" B ")の前にあります。 –

+0

ありがとう!他の誰かがこの特定の問題を抱えている場合には、私が変更しなければならないことがもう1つありました。私の目的のために、私は変わったときに少し違って見えるかもしれないデータを扱っていました。 'Worksheets(" OutPut ")With UsedRange'を使って' Worksheets( "OutPut")を使って '.UsedRange'を' – AlivePresumably

関連する問題