2016-02-03 9 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

Это делает то же самое, что делает ваш код 'Sheets ("Лист1"). Range (Range ("C12"), Sheets ("Лист1"). Range («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

Смежные вопросы