使用索引范围进行VBA减法会产生运行时错误13

时间:2017-11-07 19:53:26

标签: excel-vba vba excel

我已经包含了一小段代码,通过调试,我注意到会产生类型不匹配(错误13),我不明白为什么:

Sub Subtract()
  Dim Index, Lastrow As Integer

  Dim ws As Worksheet
  Set ws = Sheet1

  With ws
    Lastrow = .Range("E" & .Rows.Count).End(xlUp).Row

    For Index = 2 To Lastrow
        ws.Range("F" & Index).Value = ws.Range("E" & Index).Value - ws.Range("E" & Index - 1).Value
    Next Index
  End With
End Sub

我确信问题就是这段代码:

ws.Range(“E”& Index - 1).Value

所以我尝试了一些事情,其中​​一个是将索引分配给变量,如下所示:

a = Index - 1

然后将 a 替换为论坛,如此

ws.Range("F" & Index).Value = ws.Range("E" & Index).Value - ws.Range("E" & a).Value

但我仍然遇到同样的错误。我想我现在理解我不应该在那个范围函数中做数学所以我的问题就是这个......

如何减去两个索引单元格的值?例如:

ColE  ColF
  20   0
  20   0
  30   10
  30   0
  40   10 

1 个答案:

答案 0 :(得分:3)

在3开始你的指数循环,所以你不要试图减去" ColE"从20岁开始。