#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