У меня есть вложенный цикл for, который перебирает годы рождения (с 1919 по 2001) для двух разных людей.
Цель состоит в том, чтобы найти каждую возрастную комбинацию (основанную на датах рождения) для двух людей.
У меня есть проблема в том, что возраст человека во вложенной петле (петле)с переменной j), кажется, повторяется иногда и случайно без шаблона.
Например, каждая комбинация, когда человек N в возрасте 100-20 лет, работает нормально, без повторного значения возраста для человека J. Затем внезапно, когда человек N в возрасте 19 лет, человек J переходит в возрасте 100-50 лет.тогда ему будет дважды 49 лет, а затем возраст 47.
Ниже приведен мой код:
Sub ChangeDOB()
Application.ScreenUpdating = False
Dim n As Long
Dim i As Long
Dim j As Long
i = 2
For n = 1919 To 2001
Sheets("Inputs").Range("E6").FormulaR1C1 = "1/15/" & n
'j = 1919
For j = 1919 To 2001
Sheets("FF Tool Rates").Range("B" & i).Value = Sheets("Inputs").Range("E7").Value
Sheets("Inputs").Range("E10").FormulaR1C1 = "1/15/" & j
Sheets("FF Tool Rates").Range("C" & i).Value = Sheets("Inputs").Range("E11").Value
Sheets("FF Tool Rates").Range("D" & i).Value = Sheets("Inputs").Range("S8").Value
i = i + 1
Next j
Next n
Application.ScreenUpdating = True
End Sub
Формула во входных данных! E7 рассчитывает возраст человека N.Формула во входах! E11 вычисляет возраст человека J.Формула в входных данных! S8 рассчитывает значение на основе возраста двух человек.Я надеюсь, что это добавляет ясности.
Ниже приведен пример ожидаемого результата:
Person N Age Person J Age
90 90
90 89
90 88
90 87
90 86
90 85
90 84
90 83
90 82
90 81
Ниже приведен пример результата ошибки (см., Как возраст 85 появляется дважды):
Person N Age Person J Age
33 90
33 89
33 88
33 87
33 85 <-should've been 86
33 85
33 84
33 83
33 82
33 81
Первоначально я думал, что это был способ, которым я настроил Excel, который вычисляет возраст, основанный на датах рождения.Но если я вручную введу год в ячейках, Excel выдаст неповторяющиеся результаты.Таким образом, возраст 85 не появляется дважды при ручном вводе.
Кажется, что нет никакой картины относительно того, когда появляется эта ошибка, и если я перезапущу код, иногда не будет ошибки, а иногда ошибка появляется где-то еще.Вот почему мне было трудно отлаживать это.
Любые предложения или советы о том, где я мог что-то пропустить или если я испортил какую-то логику в своем коде?
Заранее спасибо!