2013-08-28 111 views
3

我想在Excel中使用宏记录器来记录一个宏以填充一列单元格,但是因为填充每次都是不同数量的单元格填充下来或者太长,这似乎是因为宏识别了单元格范围和它的固定值。宏自动填充到最后一个相邻的单元格

无论如何,我可以把它填充到最后一个人口稠密的邻居小区。例如。自动填写E列直到它到达D列中的最后一个填充行。我已经看过这里的一些例子,但代码全都看起来非常不同,所以不确定它是否可以用宏记录器完成,或者我必须让某人写一些代码还是必须手动完成的事情?

这是我在宏中的代码。

ActiveCell.FormulaR1C1 = _ 
     "=IF(MONTH(RC[-1])>3,"" ""&YEAR(RC[-1])&""-""&RIGHT(YEAR(RC[-1])+1,2),"" ""&YEAR(RC[-1])-1&""-""&RIGHT(YEAR(RC[-1]),2))" 
    Selection.AutoFill Destination:=Range("E2:E1344") 
    'Selection.AutoFill Destination:=Range("E2:E1344") 
    Range("E2:E1344").Select 

如果有人可以帮助我会非常感激

回答

9

未经测试....但应该工作。

Dim lastrow as long 

lastrow = range("D65000").end(xlup).Row 

ActiveCell.FormulaR1C1 = _ 
     "=IF(MONTH(RC[-1])>3,"" ""&YEAR(RC[-1])&""-""&RIGHT(YEAR(RC[-1])+1,2),"" ""&YEAR(RC[-1])-1&""-""&RIGHT(YEAR(RC[-1]),2))" 
    Selection.AutoFill Destination:=Range("E2:E" & lastrow) 
    'Selection.AutoFill Destination:=Range("E2:E"& lastrow) 
    Range("E2:E1344").Select 

唯一的例外是你确定自己的自动填充的代码是完美的......

+0

由于这是完美的,是自动填写代码工作很好,谢谢 – user2725363

+0

很高兴我能帮助....你可以标记答案接受......勾选旁边的右键我的答案 – Vasim

+0

我在这种情况下出现错误:Selection.AutoFill Destination:= Range(“E2:E”&lastrow)当lastrow = 2时。即(Selection.AutoFill目的地:=范围(“E2:E2”))请给我一个解决方案 –

3

这个例子说明了如何填写基于A列中数据的卷上的B柱调整“A1”相应满足您的需求。它将根据B1中的公式填入B列。

Range("A1").Select 
Selection.End(xlDown).Select 
ActiveCell.Offset(0, 1).Select 
Range(Selection, Selection.End(xlUp)).Select 
Selection.FillDown 
+0

感谢这工作,但使用另一个,因为它是为表设置。非常感谢 – user2725363

+0

我在这种情况下得到了错误,Selection.AutoFill Destination:= Range(“A260:A260”)请帮忙! –

2
ActiveCell.Offset(0, -1).Select 
Selection.End(xlDown).Select 
ActiveCell.Offset(0, 1).Select 
Range(Selection, Selection.End(xlUp)).Select 
Selection.FillDown 
相关问题