Доброе утро,
Я ищу некоторую помощь в том, как правильно заменить несколько критериев в формуле с использованием VBA - Excel.У меня есть пользовательская форма в начале макроса, где пользователь выберет месяц, для которого он хочет запустить отчет.Я использую отчет за предыдущий месяц в качестве шаблона и мне нужно обновить формулу, чтобы отразить соответствующие месяцы соответственно.Я хочу, чтобы формула была применена ко всему столбцу данных.Я перемещаю каждый месяц в формуле на один месяц вперед, чтобы получить данные за предыдущие четыре (4) месяца.
Например: я запускаю отчет для AUG.Я буду использовать отчет JUL, который был запущен в предыдущем месяце в качестве шаблона.
- Формула, которая в настоящее время находится в отчете: = сумма ('18 июля! $ 19 $ +' 18 июня '! $ E $ 19 +' MAY18 '! $ E $ 19 +' APR18 '! $ E $ 19) / B6
-Я хотел бы обновить формулу до: = sum ('AUG18'! $ E $ 19 + 'JUL18'! $ E $ 19 + 'JUN18'! $ E $ 19 + 'MAY18'!$ E $ 19) / B6
Код, который у меня есть на данный момент:
If FormMonth.Value = "AUG" Then
Columns("D:D").Select
Selection.Replace What:="JUL", Replacement:="AUG", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="JUN", Replacement:="JUL", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="MAY", Replacement:="JUN", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="APR", Replacement:="MAY", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="MAR", Replacement:="APR", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="FEB", Replacement:="MAR", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End If
- Конечный результат выглядит следующим образом: = сумма ('AUG18'! $ E $ 19 + 'AUG18'! $ E $ 19 + 'JUN18'! $ E $ 19 + 'MAY18'! $ E $ 19) / B6
Первые и последние два месяца в формуле обновляются корректно, однако JUN (предполагается, что обновится)в июль) прыгает в августе.Это похоже на то, как если бы оно продолжало циклически проходить, пока не достигнет выбранного месяца формы.
Есть какие-нибудь идеи относительно того, почему это может быть?Все еще акклиматизируется с VBA, поэтому код может быть не самым красивым.
Заранее благодарен за помощь!
Дерек