2016-12-20 5 views
-1

Хотите использовать изменения клеток, чтобы запустить этот код:. Получить ошибку времени выполненияОшибка выполнения 1004 «диапазон object_worksheet не удалось

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

Спасибо

+6

это неправильно 'диапазон ("(F13")' должен быть 'диапазон ("F13")' – cyboashu

+1

Отсутствует 'On Error Goto ErrorHandler' ... –

+0

Я отредактировал исправления, и теперь нет ошибки во время выполнения, но это не цикл через цикл for. «debug.print 1» – geddeca

ответ

0

За комментариями, это должно работать:

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

Говорил слишком рано. Я редактировал свое первое сообщение, чтобы отразить, что я назначил вычисление переменная с именем amount. затем назначил его F17 после цикла for. F17 отображает только расчет после первой итерации. 172.50 ??? – geddeca

+0

@geddeca oh wait, только что понял, что вы ничего не зацикливаете. Что должен делать лоп? Вы хотите перебирать клетки? В настоящее время цикл бесполезен. – BruceWayne

+0

Я хочу, чтобы он продолжал добавлять 15% от первоначальной суммы за столько итераций (лет), которые выбраны в F16. Затем после этого назначить окончательную сумму на F17. – geddeca

Смежные вопросы