2016-02-03 195 views
1
Sub FillEmptyCell() 
    Dim rng As Range 
    Dim i As Long 
    Dim cell As Range 
    Dim sht As Worksheet 
    Set sht = ActiveWorkbook.Sheets("Sheet1") 
    sht.Activate 

    Set rng = Range(Range("C12"), Range("AD" & sht.UsedRange.Rows.Count)) 

    For Each cell In rng 
     If cell.Value = "" Then 
      cell.Value = "0" 
     End If 

    Next 
End Sub 

我試圖填補我的空白表中零dynamically.However, 我不希望這填補行沒有數據零。有人可以幫忙嗎?填充空白單元格的零使用VBA代碼

+0

這確實與您的代碼做什麼'表( 「工作表Sheet1」)。(範圍( 「C12」),表( 「工作表Sheet1」),範圍( 「AD」&Sheets(「Sheet1」)。UsedRange.Rows.Count))。SpecialCells(xlCellTypeBlanks)= 0' – Davesexcel

+0

您想循環訪問C列並查看每行是否有數據? – Davesexcel

+0

是的,b列有一些日期是從另一個工作表動態轉儲的,所以如果B列沒有日期,那麼與從C到AD填充日期相對應的數據也應該沒有任何內容。只有存在日期且沒有值時那裏對應於每一列然後我想要那些空白單元格爲零 – Sunaina

回答

1

看到這是如何工作的,

Sub ZeroStuff() 
    Dim LstRw As Long, rng As Range, sh As Worksheet, c As Range 

    Set sh = Sheets("Sheet1") 

    With sh 
     LstRw = .Cells(.Rows.Count, "C").End(xlUp).Row + 1 
     Set rng = .Range("C12:C" & LstRw).SpecialCells(xlCellTypeBlanks) 

     For Each c In rng.Cells 
      .Range(c.Offset(, 1), c.Offset(, 27)) = 0 
     Next c 

    End With 

End Sub 
+0

這甚至選擇在任何單元格中沒有數據的行。我的代碼也是一樣的。這些列是從C12:AD12固定的,但這些行是動態的。我不希望零數據行沒有數據。 – Sunaina

+0

如果{sht.Activate}我改用Range(「c12:ad12」)。選擇Set rng = Range(Selection,Selection.End(xlDown)),然後是for循環,,,,它只填充C12:AD12和它下面的一行,空格爲零。爲什麼它不會進入行Atleast在一個單元格中的數據? – Sunaina

+0

如何使用while循環,如果該行在b列中具有日期信息,則與該行對應的所有空白單元格都填充爲零 – Sunaina

相關問題