2011-02-08 47 views
0

我之前问过这个问题,但很难说明我做了哪些编辑。用相似的值填充一列的空格partII

我写了一些代码来扫描第1列中的行...每当它遇到一个唯一的房间号码时,它会用该号码填充它下面的空白单元格。不幸的是,这只是复制所述第一单元格的值(“1”),并通过10分

我的代码粘贴到所有行3是: “填充在与像房间号房间号柱:

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

+0

可能的重复[用相似值填充列的空格](http://stackoverflow.com/questions/4888096/fill-a-columns-blank-spaces-with-like-values) – 2012-02-27 05:35:46

回答

0

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

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

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

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