使用第一个空白上方的单元格中的值填充不连续的空白单元格

发布于 2024-09-24 01:17:18 字数 159 浏览 5 评论 0原文

我有一个如下所示的列:

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

空白指的是其上方的记录。所以#4 会与红色相关联 6 和 7 是蓝色的。

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

I have a column like the following:

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

The blanks refer to the record above it. So #4 would be associated with red
and 6 and 7 would be blue.

Is there an easy way to fill in the blanks for entire column?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

九厘米的零° 2024-10-01 01:17:18
  • 选择A1:A8
  • F5 显示“Goto”对话框。
  • 单击特殊...选择空白并单击确定。

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

  • 然后,在不选择任何其他内容的情况下,输入 =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
  • Select A1:A8.
  • Press F5 to show the Goto dialog.
  • Click Special ..... Select Blanks and click OK.

That will select a noncontiguous range of blank cells.

  • Then, without selecting anything else, type =A3 and press +.
  • That will enter an array formula in all the blank cells referring to the cell above it.
  • Reselect A1:A8, and Edit - Copy.
  • Then Edit - Paste Special - Values. And you're all set.

Note that the =A3 refers to the cell above the first blank cell.

If you want to do it with a macro, you could loop through the cells and fill in the empty ones.

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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文