2016-12-20 1 views
-1

Möchten Sie einen Zellenwechsel verwenden, um diesen Code auszuführen. Einen Laufzeitfehler erhaltenLaufzeitfehler 1004 „Bereich von object_worksheet fehlgeschlagen

Private Sub Worksheet_Change(ByVal Target As range) 
On Error GoTo ErrorHandler '<--| be sure to catch any error and enable events handling back 
Select Case Target.Address 

    Case "$F$16" 
     'Recalculate as necessary 
     For counter = 1 To range("F16").Value 
     Debug.Print counter; 
     amount = range("F13").Value + (range("F13").Value * 0.15) 
     Next 
     range("F17").Value = amount 

End Select 
ErrorHandler: 
Application.EnableEvents = True '<--| enable events handling 

End Sub 

enter image description here

Danke

+6

das ist falsch 'Bereich ("(F13")' 'sollte sein' Bereich ("F13") – cyboashu

+1

"On Error Goto ErrorHandler" fehlt ... –

+0

Ich habe die Korrekturen bearbeitet und jetzt keinen Laufzeitfehler, aber es läuft nicht durch meine for-Schleife. "debug.print 1" – geddeca

Antwort

0

Per Kommentare, diese funktionieren soll:

Private Sub Worksheet_Change(ByVal Target As Range) 
On Error GoTo ErrorHandler '<--| be sure to catch any error and enable events handling back 
Dim i As Long 

Select Case Target.Address 

Case "$F$16" 
    'Recalculate as necessary 
    For i = 1 To Range("F16").Value 
     Debug.Print i 
     Range("F17").Value = Range("F13").Value + (Range("F13").Value * 0.15) 
    Next i 

End Select 
ErrorHandler: 
Application.EnableEvents = True '<--| enable events handling 

End Sub 
+0

Habe zu früh gesprochen. Ich habe meinen ersten Beitrag bearbeitet, um zu reflektieren, dass ich die Berechnung zugewiesen habe eine Variable mit dem Namen Betrag. dann hat es F17 nach der for-Schleife zugewiesen. F17 zeigt nur die Berechnung nach der ersten Iteration an. 172.50 ??? – geddeca

+0

@gededdeca Oh, warte, realisierte nur, dass du nichts schleifst. Was soll der Hase machen? Möchten Sie Zellen durchlaufen? Derzeit ist die Schleife sinnlos. – BruceWayne

+0

Ich möchte, dass die 15% des ursprünglichen Betrags für so viele Iterationen (Jahre) hinzugefügt werden, wie in F16 ausgewählt sind. Danach den endgültigen Betrag F17 zuweisen. – geddeca

Verwandte Themen