2016-12-31 15 views
0

新しい列を追加しようとしていて、新しい追加列に系列番号を自動入力しようとしています。私は以下のコードを使用していますが、オートフィルは私のExcelではまったく動作しません。EXCELの自動入力

Sub Macro7() 

Columns("A:A").Select 
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove 

Range("A1").Select 
ActiveCell.FormulaR1C1 = "Sr. No" 
Dim LR As Long, i& 
LR = Range("B" & Rows.Count).End(xlUp).Row 
Range("A2").AutoFill Destination:=Range("A2:A" & LR) 

End Sub 

答えて

0

上記のセルの値または式を列に入力するには、FillDownを使用します。

また、Select,SelectionおよびActiveCellを使用する代わりに、参照されたオブジェクトを使用して直接操作する必要があります。つまり、Range("A1").SelectActiveCell.FormulaR1C1 = "Sr. No"の代わりにRange("A1").FormulaR1C1 = "Sr. No"と書くことができます(ここには数式はありませんので、この場合はRange("A1") = "Sr. No"である必要があります)。

コード

Option Explicit 

Sub Macro7() 

Dim LR As Long, i& 

Columns("A:A").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove 

' find last column in Column B (with skipping blank cells in the middle) 
LR = Cells(Rows.Count, "B").End(xlUp).Row 

Range("A1") = "Sr. No" 
Range("A2").Formula = "=ROW()-1" 
Range("A2:A" & LR).FillDown 

End Sub 

編集1

' find last column in Column B (with skipping blank cells in the middle) 
LR = Cells(Rows.Count, "B").End(xlUp).Row 

Range("A1:A" & LR).Formula = "=2*ROW(B1)-1" 
+0

今私の列Aは "シニア号" で埋めなっていますのみ、シリアル番号ではありません。 –

+0

そして、シリーズとして、私は1から始まる –

+0

から数値の項目を入れたいので、A2を1、A3を2などにしたいですか?列Bのデータを持つ最後の行まで(以前の列A)?それがあなたが意味するものなら編集済みコードを参照してください –