我正在尝试自动将一行公式填充到前面的行中。
我使用的是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'自动填充方法失败
答案 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