VBA: выберите строки под ячейкой с определенным значением

#vba

#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
  

Как я могу сделать?

Ответ №1:

Я буду использовать 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