2015-03-02 89 views
1

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

回答

2
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 
1

Selection.Autofill不是achieveing这个的一个非常有效的方式,但要得到它的工作您的自动填充线调整到这样的:

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

这只是你有办法构造了目标无法使用的范围。要调试这种类型的错误,请尝试使用“立即”窗口并检查您创建的范围的地址。