首页 > 解决方案 > VBA:选择具有特定值的单元格下方的行

问题描述

我正在尝试在单元格下方选择一组带有文本“城市”的行,并将它们复制并粘贴到不同的列中。一旦找到单词“City”,然后复制所有接下来的行,直到找到单词 Bird_type,复制并粘贴行并对 A 列中的所有城市重复这些步骤,如下所示

在此处输入图像描述

我试图在 VBA 中对其进行编码,但我只得到了第一个找到的行:

Sub test()


Dim city_find As String
Dim result As Integer
result = 2


Dim i As Integer

a = Worksheets("sheet1").Cells(Rows.Count, 1).End(xlUp).Row

For i = 2 To a


    If Worksheets("sheet1").Cells(i, 1).Value = "city" Then
    
      Range(Cells(i + 1, 1), Cells(i + 1, 6)).Copy
      
      Range("E100").End(xlUp).Offset(1, 0).PasteSpecial xlPasteFormulasAndNumberFormats
    
    
       result = result + 1
    

    End If


Next i

   
End Sub

我能怎么做?

标签: vba

解决方案


我将使用 VBA .Find()

Sub Calc()
  Dim s As Range, e As Range, nS As String
  Set s = ActiveSheet.UsedRange.Find("City")
  If Not s Is Nothing Then
    Set e = ActiveSheet.UsedRange.Find("City",s)
    If Not e Is Nothing Then
      Range(s,e).EntireRow.Copy
    End If
  End If
  Range("E100").End(xlUp).Offset(1, 0).PasteSpecial xlPasteFormulasAndNumberFormats
End Sub
  
      

推荐阅读