我正在尝试添加新列,然后使用序列号自动填充新添加的列。我正在使用下面的代码,但在我的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 :(得分:0)
为了使用上面的单元格中的值或公式填充列,请使用FillDown
。
此外,您应该使用引用的对象,而不是使用Select
,Selection
和ActiveCell
,而是直接对它们执行操作。即,而不是Range("A1").Select
和ActiveCell.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"