Я изо всех сил пытался выработать логику для этого, поэтому любая помощь будет оценена!
У меня есть лист с именами и датами, в каждой строке (в столбце примера от D до F) ему нужно найти наибольшую дату, а затем добавить дату в столбец (столбец C). Я могу заставить это работать на одной тестовой строке, но мне нужно, чтобы это работало, когда есть изменение в любой строке.
B C D E F
Name Due Date Date 1 Date 2 Date 3
Dave 01-01-20 01-01-14 01-01-17
Sarah 01-01-21 01-02-11 01-02-15 01-02-18
Код, который у меня есть на данный момент:
LastRow = wsCB.Cells(Rows.Count, "C").End(xlUp).Row
rowcount = 12
Max_date = Application.WorksheetFunction.Max(wsCB.Range(wsCB.Cells(rowcount, 5), wsCB.Cells(rowcount, 10)))
Max_date = CDate(Max_date)
DueDate = DateAdd("yyyy", 3, Max_date)
wsCB.Cells(12, 4) = DueDate
Я настроил его на вызов Worksheet_Change. Я пробовал разные циклы, пытаясь использовать xlup, но я не уверен, что это правильный путь, так как мне нужно обновить значение, когда пользователь ввел новую дату для кого-то. Я не могу понять, как масштабировать этот однострочный пример на весь лист.
Данные не будут массивными, однако таких листов будет 5, и на каждом листе может быть не более 70 имен.
Я все еще новичок в VBA, поэтому любой совет будет очень полезен!