【问题标题】:Fill non-contiguous blank cells with the value from the cell above the first blank使用第一个空白上方单元格中的值填充非连续空白单元格
【发布时间】:2010-09-21 16:22:26
【问题描述】:

我有一列如下:

1 red
2 blue
3 red
4 
5 blue
6
7
8 white

空格指的是上面的记录。所以#4将与红色相关联 6 和 7 是蓝色的。

有没有一种简单的方法可以填写整列的空白?

【问题讨论】:

    标签: excel worksheet-function


    【解决方案1】:
    • 选择A1:A8
    • F5 显示转到 对话框。
    • 单击特殊.....选择空白并单击确定。

    这将选择一个不连续的空白单元格范围。

    • 然后,不选择任何其他内容,键入=A3 并按+
    • 这将在引用其上方单元格的所有空白单元格中输入一个数组公式。
    • 重新选择A1:A8,然后编辑-复制
    • 然后编辑 - 选择性粘贴 - 值。一切就绪。

    注意=A3 指的是第一个空白单元格上方的单元格。

    如果你想用宏来做,你可以遍历单元格并填写空的。

    Public Sub FillBlanks()
    
        Dim rColumn As Range
        Dim rCell As Range
    
        If TypeName(Selection) = "Range" Then
            For Each rColumn In Selection.Columns
                For Each rCell In rColumn.Cells
                    If rCell.Row > rColumn.Cells(1).Row Then
                        If IsEmpty(rCell.Value) Then
                            rCell.Value = rCell.Offset(-1).Value
                        End If
                    End If
                Next rCell
            Next rColumn
        End If
    End Sub
    

    【讨论】:

    • Very Slick - 我们如何使用宏来做到这一点?使用 SendKeys "^{ENTER}" ?
    • 注意不要选择一整列,比如 A:A,否则它将永远循环。否则实时节省!