2016-06-15 20 views
-1

私の質問はこの1つに似ていますVBA - Find first and last row containing specific textしかし、私は少し微調整が必​​要です。私の列Aの値がを削除し、削除終了、およびある -(ダッシュ)のみと私はを削除最初の行を取得する必要が削除エンドがどこにあるかで、最後の行。VBA - 繰り返すテキストの最初と最後の行を検索

Rows Column A 
1  Delete 
2  Delete 
3  Delete end 
4  - 
5  - 
6  - 
7  - 
8  Delete 
9  Delete end 

編集:A3: 私は、行1および3、および8,9、A1等しない範囲を抽出したいです。私はこのアプローチをどのようにすべきですか?

+0

あなたが行を抽出することによって何を意味するのですか?コード内でこれらの範囲を指定しますか?行番号が必要ですか?テキスト "A1:A3"を別のセルに書き出しますか? – Sun

+0

オハイオ州、私は行番号を意味し、範囲 "A1:A3"ではなく、1と3でなければなりません。ごめんなさい。 – Meltdowner

答えて

1

希望はこれです。

...あなたのデータはA2で始まると仮定すると、

Sub test() 
    Dim lastrow As Long, i As Long 
    Dim startaddress As String, endaddress As String, alladdress As String 
    lastrow = Range("A" & Rows.Count).End(xlUp).Row 
    For i = 2 To lastrow 
     If Cells(i, 1) = "Delete" Then 
      startaddress = Cells(i, 1).Address 
      Do While Cells(i, 1) <> "Delete end" 
       i = i + 1 
      Loop 
      endaddress = Cells(i, 1).Address 
      If alladdress <> "" Then 
       alladdress = alladdress & ", " & startaddress & ":" & endaddress 
      Else 
       alladdress = startaddress & ":" & endaddress 
      End If 
     End If 
    Next i 
    Cells(2, 2) = alladdress 
End Sub 


enter image description here

+0

こんにちは、あなたの答えをありがとうが、私の質問に間違いがあった。行番号ではなく、範囲番号が必要でした。その場合は、startaddress = Cells(i、1).Addressを.Rowsに変更するだけですか? – Meltdowner

+0

私は今、感謝しました。 startaddressとendaddressを.Rowに変更しました。 – Meltdowner

関連する問題