在EXCEL中自动填充

时间:2016-12-31 01:40:18

标签: excel-vba vba 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

1 个答案:

答案 0 :(得分:0)

为了使用上面的单元格中的值或公式填充列,请使用FillDown

此外,您应该使用引用的对象,而不是使用SelectSelectionActiveCell,而是直接对它们执行操作。即,而不是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"