【问题标题】:In Excel, how to fill blank cells with the last preceding non-blank cell?在 Excel 中,如何用前面的最后一个非空白单元格填充空白单元格?
【发布时间】:2013-08-25 10:55:02
【问题描述】:

如何用前面最后一个非空白单元格填充空白单元格?

例如,我有这个两栏的表格:

A   
    abc
    dce
    fds
B   
    kjh
    abc

我想要的是:

A   
A   abc
A   dce
A   fds
B   
B   kjh
B   abc

我尝试了“=IF(ISBLANK(A2), A1, A2)”之类的公式,但它会警告我存在冗余并且不起作用。

【问题讨论】:

    标签: excel


    【解决方案1】:
    • “手动”方式,您可以执行以下操作:

    选择列,转到编辑 > 转到 > 特殊 > 空白,在公式栏中键入 =,按向上箭头,然后按 Ctrl+Enter。你现在应该用上面的值填充单元格

    • 以更“自动化”的方式使用 VBA,您可以执行以下操作:

    选择要填充空白单元格的范围,

    然后点击开发者选项卡 -> Visual Basic -> 插入 -> 模块

    然后将代码粘贴到Module中,点击运行

    代码:

     Sub Fill_Blank_Cells()
     Selection.SpecialCells(xlCellTypeBlanks).Select
     Selection.FormulaR1C1 = "=R[-1]C"
     End Sub
    

    正如@Jerry 正确指出的那样,确保复制粘贴特殊的值以删除填充列后面的公式。这将防止以后出现任何不良结果!

    【讨论】:

    • 谢谢Mariam,但是代码好像有问题,不管我选择多少个单元格,它只填充第一个空白单元格!
    • 也尝试“手动”方法(请参阅上面我编辑的答案)。同时,我会再检查一次代码。
    • @user2445 该代码非常适合我。确保选择整个列,然后在模块中点击运行。
    • @user2445 我贴出了如何执行代码的详细说明!如果你愿意,再试一次:)
    • @Mariam 你可以在你的中添加粘贴值,继续 :)