Установите строку, содержащую определенный текст, как номер строки «x» — Excel/VBA

#excel #vba

Вопрос:

У меня есть запущенный макрос, который начинается с;

 Sub (myMacro)
For a = 10 To 200

Cells(a, 2).Value = "Value for a"
Cells(a   1, 1).EntireRow.Insert

Next a
End Sub
 

Вышесказанное упрощено для целей данного вопроса.

В строке 100 столбец B (перед макросом) содержит текст «Важные примечания». После запуска макроса ячейка с «Важными заметками» становится строкой 101.

Проблема, с которой я столкнулся, заключается в том, что мне нужно, чтобы макрос запускался от строк 10 до строки, в которой есть «Важные заметки». Я могу добавить еще 50 или 100 строк с помощью макроса (который каждый раз вставляет новую строку), поэтому я не могу установить «Для a = от 10 до 100».

Есть ли способ каким-то образом выполнить приведенное ниже (не работает), где x-номер строки, содержащий «Важные примечания»

 For a = 10 to x
 

Спасибо.

Комментарии:

1. Вы хотите вставить пустую строку, где условие совпадает. До или после определенного слова ?

Ответ №1:

Попробуйте это:

 Sub InsertBlankRows()
    
    Dim Col         As Variant
    Dim BlankRows   As Long
    Dim LastRow     As Long
    Dim R           As Long
    Dim StartRow    As Long
    
    Col = "B"
    StartRow = 1
    BlankRows = 1
    
    LastRow = Cells(Rows.Count, Col).End(xlUp).Row
    
    Application.ScreenUpdating = FALSE
    
    With ActiveSheet
        For R = LastRow To StartRow   1 Step -1
            If .Cells(R, Col) = "Important Notes" Then
                .Cells(R, Col).EntireRow.Insert Shift:=xlDown
            End If
        Next R
    End With
    Application.ScreenUpdating = TRUE
    
End Sub
 

Комментарии:

1. Гальд хотел услышать. Как мне принять ответ и каковы правила? @lyaof