Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 自动填充到最后一个相邻单元格的宏_Excel_Vba - Fatal编程技术网

Excel 自动填充到最后一个相邻单元格的宏

Excel 自动填充到最后一个相邻单元格的宏,excel,vba,Excel,Vba,我试图使用Excel中的宏录制器录制宏以填充一列单元格,但是,由于每次填充的单元格数不同,它填充的单元格数可能短,也可能太长,这似乎是因为宏标识了单元格范围及其固定值 无论如何,我都可以把它填到最后一个居住的相邻牢房。例如,自动填充E列,直到它到达D列中最后填充的行。我在这里查看了一些示例,但代码看起来都非常不同,因此不确定是否可以使用宏记录器来完成,或者我必须让人编写一些代码,还是必须手动完成 这是我在宏中的代码 ActiveCell.FormulaR1C1 = _ "=IF(

我试图使用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

如果有人能帮助我,我将非常感激未经测试的……但应该有效

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

唯一的例外是您是否确定自动填充代码是完美的…

此示例演示如何根据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

谢谢,这是完美的,是的,自动填充代码工作正常,谢谢你的帮助…你能将答案标记为已接受吗…勾选我答案旁边的右键我在这种情况下遇到错误:Selection.autofill Destination:=范围(“E2:E”&lastrow),当lastrow=2时。i、 e(Selection.AutoFill Destination:=Range(“E2:E2”))请给我一个解决方案感谢这项工作,但在为工作表设置时使用了另一项。在这种情况下,Selection.AutoFill Destination:=范围(“A260:A260”)出现错误。请帮助!。。
ActiveCell.Offset(0, -1).Select
Selection.End(xlDown).Select
ActiveCell.Offset(0, 1).Select
Range(Selection, Selection.End(xlUp)).Select
Selection.FillDown