2011-02-08 49 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