首页 > 解决方案 > 用下面的值填写 VBA

问题描述

我有下面的代码用上面的值填充选择中的所有空白单元格。我试图做相反的事情,根据下面的值填写。我想我需要让它从选择的底部循环,但不知道该怎么做。请参阅下文了解我想要的结果。

 1   1
     2
 2   2
     3
     3
 3   3
Sub FillDown()

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

标签: excelvba

解决方案


从下往上迭代:For i = columnValues.Rows.Count to 1 Step -1

并将其更改columnValues.Cells(i - 1, 1).ValuecolumnValues.Cells(i + 1, 1).Value

Sub FillDown()

    Dim columnValues As Range
    Set columnValues = Selection
    
    Dim i As Long
    For i = columnValues.Rows.Count To 1 Step -1
        If columnValues.Cells(i, 1).Value = "" Then
            columnValues.Cells(i, 1).Value = columnValues.Cells(i + 1, 1).Value
        End If
    Next

End Sub

前:

在此处输入图像描述

后:

在此处输入图像描述


推荐阅读