更改我的代码 - 除去范围的值并将其复制到vba下面的单元格中

时间:2014-08-11 08:36:10

标签: vba excel-vba excel

我从这样的表开始:

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

我将数字除以空白数+ 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        

这一行:Range(cell, cell.Offset(i - 1, 0)).value = cell.value / i错误(类型不匹配)。 VBA无法执行cell.value / i。我该如何解决这个问题?

0 个答案:

没有答案