用上面的细胞填充空白细胞

时间:2018-01-03 23:53:47

标签: excel-vba vba excel

我有一个看起来像这样的工作表:

BusABC     Florida     Rush Street     15
blank      blank       Landon Street   29
blank      blank       Naples Street   34
Bus123     Georgia     Rush Street     15
blank      blank       Marietta Street 29234
blank      blank       Duluth Street   321
blank      blank       Augusta Avenue  12

我想使用代码来获得空白与上述数据匹配的结果。因此A2,A3将具有“BusABC”和B2,B3将具有“佛罗里达”。

然后A5,A6和A7会有“Bus123”而B5,B6和B7会有“Georgia”。

我不需要使用特定的单元格编号,因为我有数千个这样的组设置,而且我的代码无法引用特定的单元格。

此外,C列和D列中可能有空白单元格(在我的示例中),我需要保留空白

我尝试了这个(下面)......我最终得到了具有0和#N / A

的单元格
On Error Resume Next
With Selection.SpecialCells(xlCellTypeBlanks)
  .FormulaR1C1 = "=R[-1]C"
  .Value = .Value
End With

我也试过这个并没有任何反应:

Sub split()
    Dim columnValues  As Range, i As Long

    Set columnValues = Selection

    For i = 1 To columnValues.Rows.Count
        If columnValues.Cells(i, 1).Value = "" Then
            columnValues.Cells(i, 1).Value = columnValues.Cells(i - 1, 1).Value
        End If
    Next
End Sub

2 个答案:

答案 0 :(得分:0)

.value = .Value中取出SpecialCells()使其有效。

With Selection
    With .SpecialCells(xlCellTypeBlanks)
        .FormulaR1C1 = "=R[-1]C"
    End With
  .Value = .Value
End With

在:

enter image description here

后:

enter image description here

答案 1 :(得分:0)

我一般反对使用VBA编写公式。因此,我创建了一个写入结果的解决方案。不幸的是,我似乎迟到了。你已经接受了答案。但是,既然我编写了代码,我也可以分享它。在这里。

{{1}}