2016-06-15 3 views
-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

관련 문제