我从这样的表开始:
colB:
row1: 15
row2: (empty)
row3: (empty)
row4: 60
row5: (empty)
row6: 45
row7: 88
row8: (empty)
row9: 10
...
rowN: 56
我想将非空单元格的值(例如,第1行中的15)除以空白的后续单元格的数量。这意味着,在转换之后,B列将如下所示:
colB:
row1: 5
row2: 5
row3: 5
row4: 30
row5: 30
row6: 45
row7: 44
row8: 44
row9: 10
...
rowN: 56
我不知道该怎么做。任何人都可以帮助我,请吗?
答案 0 :(得分:2)
那么将数字除以空白数+ 1? (15/3)除非没有空格然后除以1? (45 == 45)
这将通过锚定一个填充的单元格来查找B中的最后一个单元格,查看其垂直偏移,然后在不为空时重新锚定;
Dim max As Long, i As Long, cell As Range
Set cell = Range("B1")
max = Range("B" & Rows.Count).End(xlUp).Row
Do
i = i + 1
If (cell.Offset(i, 0).value <> "") Then
Range(cell, cell.Offset(i - 1, 0)).value = cell.value / i
Set cell = cell.Offset(i, 0)
i = 0
End If
If cell.Row = max Then Exit Sub
Loop