在列中填充具有“上一个已知值”的空单元格
我在表格中有不同的空单元格,我想填充该列中最后一个已知值。
Sub autofiller() Dim DataRange As Range Set DataRange = Range("A1:D4") Dim i As Integer FillA = "" For Each cell In DataRange If cell(1, 1).Value <> "" Then FillA = cell(1, 1).Value Else cell(1, 1).Value = FillA End If i = i + 1 Range("C1").Value = i Next End Sub
第一行不会有空值。 我的逻辑是,它将查看该范围内的每个单元格,如果它不是一个空单元格,请拿起该值,直到它击中一个空单元格,然后我将该值。 我的柜台是为了保持跟踪。 在我看来,代码是水平检查逐个单元格,但我希望它逐个垂直检查。 我怎样才能垂直检查?
我是VBA新手,所以任何额外的意见/指南将有所帮助。
尝试这个:
Sub autofiller() Dim cell as range Dim DataRange As Range Set DataRange = Range("A1:D4") For Each cell In DataRange If cell.Value = "" Then cell.Value = cell.Offset(-1).Value End If Next End Sub
因为每个会从左到右,从上到下它会填满上面的单元格,因为它遇到空单元格。
您正在将范围variables的variablescell
与作为范围对象的Cells()
混淆。 cell(1,1)
等于cell
因为它正在获取范围为1的第一个单元格。
另一种编写cell.Offset(-1)
方法是将cell(-1,1)
获取单元cell.Offset(-1)
上方的单元格。