使用VBA向整个excel行添加颜色

使用VBA向整个excel行添加颜色,vba,excel,Vba,Excel,我想添加从A4单元格开始的n行 我的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 我的错误

我想添加从A4单元格开始的
n

我的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
我的错误是:

“需要对象”

您使用了
单元格
,这对VBA没有任何意义。使用
单元格([row],[column])
甚至只使用
行(lRow)。整个行…

同样,您选择的是单个单元格(
Range(“A4:A4”)。选择
),这一点永远不会改变,因此只有
A4
才会插入行-这是您想要的吗

编辑:不使用
。选择

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
您使用了
单元格
,这对VBA没有任何意义。使用
单元格([row],[column])
甚至只使用
行(lRow)。整个行…

同样,您选择的是单个单元格(
Range(“A4:A4”)。选择
),这一点永远不会改变,因此只有
A4
才会插入行-这是您想要的吗

编辑:不使用
。选择

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
试试这个:

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

我是不是遗漏了什么?为什么每个人都在循环

Range("A4:A14").EntireRow.Insert , CopyOrigin:=xlFormatFromLeftOrAbove
Range("A4:A14").EntireRow.Interior.ColorIndex = xlNone

我是不是遗漏了什么?为什么每个人都在循环

Range("A4:A14").EntireRow.Insert , CopyOrigin:=xlFormatFromLeftOrAbove
Range("A4:A14").EntireRow.Interior.ColorIndex = xlNone

你得到了什么错误?你得到了什么错误?它与:Range(“A”&lRow)一起工作。在循环开始时选择,然后。。。。Selection.EntireRow.Insert,CopyOrigin:=xlFormatFromLeftOrAbove u单元格(lRow,1)。EntireRow.Interior.ColorIndex=xlNone@albert-请参阅我的编辑,因为最佳做法是使用thx:范围(“A”&lRow)。仅在循环开始处选择,然后。。。。Selection.EntireRow.Insert,CopyOrigin:=xlFormatFromLeftOrAbove u单元格(lRow,1)。EntireRow.Interior.ColorIndex=xlNone@albert-请参阅我的编辑,因为最好的做法是将子测试()Dim i作为整数Dim ws作为工作表Dim lRow作为长集ws=Sheets(“Sheet1”)lRow=ws.Cells(Rows.Count,1)。End(xlUp).i=4到14范围内的行(“A”&i&“:”和“A”&i).Interior.ColorIndex=5下一个i结束子系统测试()将i作为整数将ws作为工作表将Dim lRow作为长集ws=Sheets(“Sheet1”)lRow=ws.Cells(Rows.Count,1.End(xlUp).将i=4到14范围内的行(“A”&i&“:”和“A”&i).Interior.ColorIndex=5下一个i结束子系统