2016-06-15 108 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 

编辑: 我想提取行1和3,以及图8和9,而不是像A1的范围内:A3。我应该怎么做这个方法?

+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

相关问题