如何根据上下单元格在Excel中自动填充值

时间:2017-07-08 15:53:20

标签: excel excel-vba excel-formula missing-data excel-2016 vba

好人,我有一张满是唯一身份证的桌子(如下所述),但是很少有人会遗漏这些内容。

我希望公式/代码根据任何单元格的上方和下方的值填充空白。

例如:这里有两个唯一id~(620006845180)之间有两个空行。

任何人都可以帮我填充这些空间,其价值与上面和下面相同。 :(我被卡住了。

    620006845180
    xxxxxxxxxxxx
    xxxxxxxxxxxx
    620006845180
    620006845180

2 个答案:

答案 0 :(得分:1)

好的,确定。这假设id在列A中

Sub FillBlankCells() 

Dim lastRow As Long: lastRow = Cells(Rows.Count, 1).End(xlUp).Row
Dim IDRange As Range: Set IDRange = Range("A1:A" & lastRow)
Dim rng As Range

For Each rng In IDRange
  If rng.Value = "" Then
    If rng.End(xlUp).Value = rng.End(xlDown).Value Then _
    rng.Value = rng.End(xlUp).Value
  End If
Next rng

End Sub

答案 1 :(得分:1)

由于循环引用,您无法在同一列中执行此操作。但是你可以使用另一列来完成它。

我假设您在A列和第2行中有这些数字,并在B中插入一个空列,并在B2中输入以下公式。然后从单元格B2复制列B的其余行。然后隐藏您的专栏A,您将在B栏中获得所需内容。

=IF(A2<>"",A2,IFERROR(IF(MATCH(B1,A3:A100,0)>0,B1,""),""))

如果您觉得可以有超过100个空行。然后,您可能需要将公式中找到的100替换为您希望为空的最大行数。