2015-03-02 71 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)) 

這只是你有辦法構造了目標無法使用的範圍。要調試這種類型的錯誤,請嘗試使用「立即」窗口並檢查您創建的範圍的地址。