填写VBA

我想要插入一个新的列,粘贴一个公式,并将该公式填充到列A中的数据的末尾。除了填充过程外,我已经完成了所有工作。 它到达偏移量时就会失败。 有没有办法在VBA中做到这一点? 任何帮助将不胜感激!

Sub Macro3() Sheet7.Columns("B:B").Select Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove Sheet7.Cells(1, 2).Value = "Reason Code" Sheet7.Cells(2, 2).Value = "=INDEX(ImportsFromMasterData!$B:B,MATCH(Imports!$A:A,ImportsFromMasterData!$A:A,0))" Sheet7.Range("B2").Select Selection.AutoFill Destination:=Range(Range("B2"), Range(Range("A2").End(xlDown)).Offset(, 2)), Type:=xlFillDefault End Sub 

 Sub Macro3() With Sheet7 .Columns("B:B").Insert Shift:=xlToRight, _ CopyOrigin:=xlFormatFromLeftOrAbove .Cells(1, 2).Value = "Reason Code" .Range(.Cells(2, 2), .Cells(Rows.Count, 1).End(xlUp).Offset(0, 1)).Formula = _ "=INDEX(ImportsFromMasterData!$B:B," & _ "MATCH(Imports!$A:A,ImportsFromMasterData!$A:A,0))" End With End Sub 

Selection.Autofill不是一个非常有效的方法来实现这一点,但要使其工作,将您的自动填充行调整为:

 Selection.AutoFill Destination:=Range(Range("B2"), Range("A2").End(xlDown).Offset(0, 1)) 

这只是你build造目的地的范围,而不是工作。 要debugging这种types的错误,请尝试使用“立即”窗口并检查您创build的范围的地址。