2017-03-22 4 views
0

最初にトラフが高度なフィルタリングを行い、テーブルをフィルタリングするコードがあります。この後、私はヘッダーを除いてテーブルのすべての行を選択し、これを削除したいと思います。私のテーブルでは、私は20列のデータを持っているし、いくつかの行は最初の10列のデータを持ち、11行目と20行目の間に空のセルがあるので、実際にはselect.end(xldown、xlright).selectを使うことはできません。 。高度なフィルタ処理後に表示される行が動的に選択されます

私はこの選択肢を修正する方法について私の頭を得ることができません。 u u prosにこれに関するヒントはありますか?

Sub notWanted() 

Range("TabellInDataPivot[[#All],[Projekt]]").AdvancedFilter Action:= _ 
    xlFilterInPlace, CriteriaRange:=Sheets("Groupfiles").Range("C8:E9"), Unique _ 
    :=False 

    lastrow = ThisWorkbook.Worksheets("GruppData").Range("A" & Rows.Count).End(xlUp).Row 
    .Range(.Cells(4, 3).Offset(rowoffset:=1), .Cells(lastrow, 20)).SpecialCells(xlCellTypeVisible).Select 

    Selection.EntireRow.Delete 
    ActiveSheet.ShowAllData 
End Sub 

Iは、コード行.Range **(と無効またはunqualifed基準誤差を得る。細胞**(4、3)このAltough以前のフィルタで正常に動作し、セグメントを削除する。

おかげで進める /D

答えて

0

Excelを使用すると、フィルタテーブル内の行を削除することを可能にしていないようです。このような状況では、私はあなただけにして、マクロを使ってフィルタリングするすべての可視の行を選択し、[OK]をクリックする必要があると思いますon the prompt誰かがこれを回避するVBA方法を見つけたなら、聞いてください。

+0

入力していただきありがとうございます。私は試し続けますが、私はまた、誰かがこれを回避するVBAの方法がある場合は聞いてみたいと思います。 – DL1

0

私はそれを得たと思う!

私のコードの結果は、私がLASTROW文を追加し、その後entirerow.delete、従うよう

Sub notWanted() 


With ThisWorkbook.Worksheets("GD") 

Range("TabellInDataPivot[[#All],[Projekt]]").AdvancedFilter Action:= _ 
    xlFilterInPlace, CriteriaRange:=Sheets("Groupfiles").Range("C8:E9"), Unique _ 
    :=False 

    lastrow0 = .Range("F" & Rows.Count).End(xlUp).Row 

Range("D2", Cells(Rows.Count, "D").End(xlUp)).SpecialCells(xlCellTypeVisible).Cells(2, 52).Select 
.Range(Cells(3, 1), Cells(lastrow0, 55)).Rows.EntireRow.Select 
Selection.EntireRow.Delete 
ActiveSheet.ShowAllData 
End With 
End Sub 

です。それは動作するように私はそれがそのことを行うことを望む!

関連する問題