2016-04-07 27 views
0

私はまだVBAで非常に初心者であり、すべての構文を理解する上で問題があります。私は列をループし、部分文字列が含まれているかどうかを確認しようとしています。もしそうでなければ、行を削除する必要があります。これまでのところ、私はこれを持っています:ループ内に文字列を含むVBAセル

Private Sub CommandButton1_Click() 

Dim count As Integer 

Do While Range("H" & count).Value > 0 
    Dim exists As Integer 
    exists = InStr(1, Range("H" & count).Value, ".AB", vbTextCompare) 

    If exists > 0 Then 
     Rows(count).Delete 
    Else 
     count = count + 1 
    End If 
Loop 

End Sub 

しかし、このコードを使用すると、私はあらゆる種類のエラーが発生します。最初に "オブジェクト '_worksheet'の 'Method' Range 'が失敗しました。それについての知識はありますか?

+2

を試してみてください。 – findwindow

+2

'count'は0で、行0はありません。 –

+0

OK、count = 2で追加しました。しかし今、ボタンをクリックすると、何も起こりません。 –

答えて

0

Plsのは、それが0 `H0`が有効なセルでないに等しいので、あなたは開始時に何もして` count`を初期化していなかった以下のコード

Private Sub CommandButton1_Click() 
    Dim exists As Integer 
    Dim count As Integer 
    lastrow = Range("H" & Rows.count).End(xlUp).Row 
    For i = 2 To lastrow 
     If InStr(UCase(Range("H" & i).Value), ".AB") > 0 Then 
      Rows(i).Delete 
      lastrow = lastrow - 1 
     End If 
    Next i 
End Sub 
関連する問題