范围类的自动填充方法失败,我缺少什么?

时间:2019-08-07 17:11:47

标签: excel vba autofill

我正在尝试自动将一行公式填充到前面的行中。

我使用的是Excel2010。我知道我在自动填充功能中使用的范围是正确的范围,我通过添加选择功能并逐行检查以确保选择了正确的范围来进行检查。

Sub NewIC()

Dim v As Range, newV As Range, oldVRow As Range, newVRow As Range
Dim s As Range
Dim dc As Range

With Sheets("Charts").Cells
    'Inserting name into Vios
    Set v = .Find("Vios", LookIn:=xlValues)
    If Not v Is Nothing Then
        v.Select
        ActiveCell.Offset(4, 0).Select

        With Selection.EntireRow.Insert(xlShiftDown, xlFormatFromRightOrBelow)
            Set newV = ActiveCell
            Range("T1").Copy newV
            newV.Font.Bold = True
        End With
    End If

    'Dragging up formulas
    Set oldVRow = Range(newV.Offset(-1, 1), newV.Offset(-1, 8))
    Set newVRow = Range(newV.Offset(0, 1), newV.Offset(0, 8))
    oldVRow.Select
    newVRow.Select

    newVRow.AutoFill Destination:=oldVRow, Type:=xlFillDefault
End With

End Sub

所有代码都可以处理到最后一行。它将正确的单元格设置为newV,设置了正确的范围,但出现错误

  

Range类的运行时错误'1004'自动填充方法失败

1 个答案:

答案 0 :(得分:1)

修改:

Set newVRow = Range(newV.Offset(0, 1), newV.Offset(0, 8))

包括上面的行:

Set newVRow = Range(newV.Offset(-1, 1), newV.Offset(0, 8))

并更改:

newVRow.AutoFill Destination:=oldVRow, Type:=xlFillDefault

收件人:

oldVRow.AutoFill Destination:=newVRow, Type:=xlFillDefault

您不需要使用所有Select

'oldVRow.Select  ' comment this row
'newVRow.Select  ' comment this row