2017-11-07 14 views
0

ich einen kleinen Code-Schnipsel enthalten sind, die über das Debuggen, bemerkte ich, erzeugt einen Typenkonflikt (Fehler 13), und ich verstehe nicht, warum:VBA Subtraction mit Index reicht erzeugt Laufzeitfehler 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 

ich bin sicher, dass das Problem dieses Stück Code ist:

ws.Range ("E" & Index - 1) .Value

So ‚ich ein paar Dinge ausprobiert, wobei einer von ihnen Index zuweisen zu einer Variablen wie folgt:

a = Index - 1 

und dann ersetzt ein in die forumla wie so

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

Aber ich habe immer noch die gleichen Fehler. Ich denke, ich verstehe jetzt, dass ich nicht Mathe in diesem Bereich Funktion tun soll, so ist meine Frage das ...

Wie subtrahiere ich die Werte von zwei indizierten Zellen? Zum Beispiel:

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

Antwort

3

Start bei 3 Ihre Index-Schleife, so dass Sie "ColE" subtrahieren von 20

nicht versuchen
Verwandte Themen