VBA 用上面的单元格替换值直到空白并循环

VBA replace value with cell above until blank and loop

我想根据上面的单元格向下填充值直到空白单元格,这应该继续直到没有更多内容,例如:参考下面的 table,将顶部的值向下复制直到空白,因此,'petty msa'将向下复制到'inter'并停止,'petty ksm'将向下复制到'general','comp'将向下复制到'motor' .

列:A
小MSA
国际米兰

小ksm
福利

预付款
一般

补偿
旅行
马达

编辑:这是一个大约 15,000 行的长列表

谢谢

Select 您有值的第一个单元格 'petty msa' 然后- 1.按ctrl+shift+down-到select要复制的范围 2. 按 ctrd+down - 向下复制值 现在您已将 'petty msa' 复制到包含 'inter'

的单元格

对每个范围重复此过程。

给定您的数据 "structure" 根据您的示例,应该这样做:

Option Explicit

Sub main()
    Dim area As Range

    With Worksheets("filldown").Columns("A").SpecialCells(xlCellTypeConstants) '<--| change "filldown" to your actual worksheet name and "A" to actual index of column with data to be "filled down"
        For Each area In .Areas
            area.Value = area(1)
        Next area
    End With
End Sub

在 A1 中插入一个空行。在单元格 B2 中粘贴以下公式并将其复制下来。

= if(A1="",A2,B1)

这应该有效