2017-06-06 12 views
0

少し助けが必要です。コードを見てみましょう:Excel VBAコードの条件文

Range("a1").AutoFilter Field:=1, Criteria1:="W1793-PAS (Agency)" 
'exclude 1st row (titles) 
With Intersect(Range("a1").CurrentRegion, _ 
       Range("2:60000")).SpecialCells(xlCellTypeVisible) 
    .Rows.Delete 
End With 
ActiveSheet.ShowAllData 
If ActiveSheet.AutoFilterMode Then ActiveSheet.AutoFilterMode = False 

は、私は、テキストマッチングCriteria1(W1793-PAS(庁))が存在しない場合は手順を停止します上記のコードのための条件文を作成する必要があります。 W1793-PAS(代理店)が入っている行がないと、これを実行したくありません。

答えて

1

AutofilterRangeオブジェクトに フィルタ範囲を格納することで何かを返すされているかどうかだけをチェックしてから削除するには、それ

Dim rng As Range 

'Remove any filters 
ActiveSheet.AutoFilterMode = False 

With Range("A1") 
    .AutoFilter Field:=1, Criteria1:="W1793-PAS (Agency)" 
    '~~> Set this here 
    Set rng = .Offset(1, 0).SpecialCells(xlCellTypeVisible).EntireRow 
End With 

'Remove any filters 
ActiveSheet.AutoFilterMode = False 

'~~> Check if there were any filtered results and then delete 
If Not rng Is Nothing Then rng.Delete 
関連する問題