Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 用VBA代码填充空白单元格_Excel_Vba - Fatal编程技术网

Excel 用VBA代码填充空白单元格

Excel 用VBA代码填充空白单元格,excel,vba,Excel,Vba,我试图用零动态地填充工作表中的空白。但是, 我不想让它填充没有数据的行中的零。有人能帮忙吗?看看这是怎么回事 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

我试图用零动态地填充工作表中的空白。但是, 我不想让它填充没有数据的行中的零。有人能帮忙吗?

看看这是怎么回事

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

这与您的代码所做的操作相同
Sheets(“Sheet1”).Range(Range(“C12”)、Sheets(“Sheet1”).Range(“AD”)和Sheets(“Sheet1”).UsedRange.Rows.Count”).SpecialCells(xlCellTypeBlanks)=0
是否要循环遍历C列并查看每一行中是否有数据?是的,b列中有某个日期是从另一个工作表动态转储的,因此如果b列没有日期,从C到AD填充的日期对应的数据也应该没有任何内容,只有当每个列都有日期且没有对应的值时,我才希望这些空白单元格为零。这是在选择任何单元格中没有数据的行。我的代码也是这样做的。列是从C12:AD12固定的,但行是动态的。我不希望没有数据的行为零。如果{sht.Activate}我改为使用范围(“C12:AD12”)。选择Set rng=Range(Selection,Selection.End(xlDown)),然后选择for循环、、,,,,它只填充了C12:AD12和它下面的一行,它的空白空间为0。为什么它不会用至少一个单元格中的数据将行向下倾斜?我怎么能使用一个while循环,如果行在B列中有日期信息,那么对应于该行的所有空白单元格都用ZORIO填充,希望它像:从03 / 03 / 2016到:30 / 03 / 2016,但是日期格式不起作用,它给出的数字是从:42256到:42272,类似这样的。
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