Excel 用上面的值填充空白行

Excel Fill blank rows with values from above

希望用 'top' 值填充一行中的空白值,类似于 Editing>Fill>Top 提供的功能。不同之处在于 Fill 函数要求您逐行进行,而不是将其自身应用于更大的数据集。示例如下:

Apple   1   foo
Banana  1   foo
        2   foo
            bar
Cherry  2   bar
        3   foo
        6   bar
Grape   1   foo

结果如下:

Apple   1   foo
Banana  1   foo
Banana* 2   foo
Banana* 2*  bar
Cherry  2   bar
Cherry* 3   foo
Cherry* 6   bar
Grape   1   foo       //new values represented with *

请注意,第二列中的第三个条目 (2) 也被删除,这意味着这可以应用于多个列。

其中的价值是将具有第一个 table 中表示的关系 Cherry>2, Cherry>3, Cherry>6 的 table 转换为可用作关联 table 的格式].

试试这个简短的宏:

Sub FillInTheBlanks()
    Dim i As Long, N As Long, j As Long

    N = Cells(Rows.Count, "C").End(xlUp).Row

    For i = 2 To N
        For j = 1 To 2
            If Cells(i, j).Value = "" Then Cells(i, j).Value = Cells(i, j).Offset(-1, 0).Value
        Next j
    Next i
End Sub

我想我会在这个上添加我的变体。当您只想 select 一个范围

时可以使用
Sub BlankCellAll()

For Each c In Worksheets("Sheet1").Range("A3:R14").Cells
 
 If c.Value = "" Then c.FormulaR1C1 = "=R[-1]C"
 
 c.Value = c.Value
 
  
 Next

End Sub