使用类似值partII填充列的空格

时间:2011-02-08 15:13:25

标签: vba

之前我问过这个问题,但很难显示我做了哪些编辑。

我编写了一些代码来扫描第1列中的行...每次遇到一个唯一的房间号时,它会用该数字填充其下方的空白单元格。不幸的是,它只复制第一个单元格的值(“1”)并将其粘贴到所有第3到10行。

我的代码是:      '用类似的房间号码填写房间号码栏:

AboveCellValue = Range("A3").Offset(-1, 0).Value
For RowIndex = 2 To 10
    For ColIndex = 1 To 1
        If Cells(RowIndex, ColIndex).Value = "" _
        Then Cells(RowIndex, ColIndex).Value = AboveCellValue
    Next ColIndex
Next RowIndex

这是一张应该发生的事情的照片: http://i802.photobucket.com/albums/yy304/Growler2009/AESProjectPic.jpg

感谢您的帮助! -Dan

2 个答案:

答案 0 :(得分:1)

我不确定我是否理解正确,因为我发现你的原始代码有些混乱,特别是当你只查看一列时的列循环,但这可能会做你想要的。

Dim AboveCellValue As Integer
For RowIndex = 2 To 10
    Const ColIndex As Integer = 1
    If Cells(RowIndex, ColIndex).Value = "" Then
        Cells(RowIndex, ColIndex).Value = AboveCellValue
    Else
        AboveCellValue = Cells(RowIndex, ColIndex).Value
    End If
Next RowIndex

答案 1 :(得分:0)

这是另一种不循环的方式。它在每个引用其上方单元格的空白单元格中放置一个公式。

With Range("A2:A10")
    .SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
    .Copy
    .PasteSpecial xlPasteValues
End With

更改范围以适合您的数据。此外,它假定您在该范围内没有任何其他公式。如果这样做,它们将转换为值,您可能不希望这样。