2017-01-18 10 views
0

は、5名のリストを持っている - 私は別のチームを作成し、それらにTeam_1、Team_2に名前を付け、列Bにしたいのです等等エクセルVBAへオートフィル列

これは私がしようとした構文です。.. 。

Function AutoFill() 
    Dim KCLR As Long 
    KCLR = sht.Cells(sht.Rows.Count, "A").End(xlUp).Row 
    Range("B2").Select 
    ActiveCell.FormulaR1C1 = "Team_1" 
    Selection.AutoFill Destination:=Range("B2:" & KCLR) 
End Function 

しかし、ラインSelection.AutoFill Destination:=Range("B2:" & KCLR)に私は

範囲のエラーが発生します( "B2:" & KCLR)オブジェクトの=メソッド '範囲' '_Globalは'

を失敗しました

これが正常に実行されるためには、何が必要ですか?AutoFillが必要ですか?

答えて

2

Selection.AutoFill Destination:=Range("B2:" & KCLR)Selection.AutoFill Destination:=Range("B2:B" & KCLR)である必要があります。KCLRは数値を返します。

+0

優れた、ありがとうございました!私は近いです - 私のVBAのスキルを高める必要があります! –

1

@ harun24hrの答えに従うと、将来的にコードを改善するために、Select,ActiveCellおよびSelectionを使用せず、完全修飾Rangeを使用してください。

以下の例を参照してください:

Function AutoFill() 

    Dim KCLR As Long 

    KCLR = sht.Cells(sht.Rows.Count, "A").End(xlUp).Row 
    Range("B2").FormulaR1C1 = "Team_1" 
    Range("B2").AutoFill Destination:=Range("B2:B" & KCLR) 

End Function