Добавление цвета с VBA для всей строки Excel

Я хочу добавить n строки, начинающиеся с ячейки А4.

Моя строка A3 синяя, поэтому добавление строк под ней добавит все синие строки.

Это мой код:

Range("A4:A4").Select
Dim lRow As Long
For lRow = 4 To 14
    Cell.EntireRow.Interior.ColorIndex = xlNone
    Selection.EntireRow.Insert , CopyOrigin:=xlFormatFromLeftOrAbove        
Next lRow

Я получил сообщение об ошибке:

"Требуется объект"

3 ответа

Я что-то здесь упускаю? Почему все зацикливаются?

Range("A4:A14").EntireRow.Insert , CopyOrigin:=xlFormatFromLeftOrAbove
Range("A4:A14").EntireRow.Interior.ColorIndex = xlNone
Range("A4:A4").Select
Dim lRow As Long
For lRow = 4 To 14
    Cells(lRow,1).EntireRow.Interior.ColorIndex = xlNone
    Selection.EntireRow.Insert , CopyOrigin:=xlFormatFromLeftOrAbove        
Next lRow

Ты использовал Cell что ничего не значит для VBA. использование Cells([row],[column]) или даже просто Rows(lRow).EntireRow...

Кроме того, вы выбираете одну ячейку (Range("A4:A4").Select) и это никогда не меняется, так что только A4 когда-нибудь вставят строку - это то, что вы хотите?

Редактировать: без использования .Select:

Dim myCell as Range
Dim lRow As Long

Set myCell = Range("A4")
For lRow = 4 To 14
    Cells(lRow,1).EntireRow.Interior.ColorIndex = xlNone
    myCell.EntireRow.Insert , CopyOrigin:=xlFormatFromLeftOrAbove        
Next lRow

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

Sub testing()

Dim i As Integer
Dim ws As Worksheet
Dim lRow As Long
Set ws = Sheets("Sheet1")

'Range("A4:A4").Select

lRow = ws.Cells(Rows.Count, 1).End(xlUp).Row

For i = 4 To 14
    Range("A" & i & ":" & "A" & i).Interior.ColorIndex = 5

Next i

End Sub
Другие вопросы по тегам