4

我正在尝试在 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

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

4

3 回答 3

9

Untested....but should work.

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

Only exception being are you sure your Autofill code is perfect...

于 2013-08-28T12:46:03.210 回答
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
于 2013-08-28T12:49:17.973 回答
2
ActiveCell.Offset(0, -1).Select
Selection.End(xlDown).Select
ActiveCell.Offset(0, 1).Select
Range(Selection, Selection.End(xlUp)).Select
Selection.FillDown
于 2014-08-13T16:17:05.680 回答