2016-10-06 3 views
-1

У меня есть лист Excel для мониторинга платежей. Клиенты имеют возможность оплачивать в рассрочку, например, в течение 1, 3, 6 и 12 ежемесячных платежей.Функция даты VBA

Так что если клиент платит сегодня. 5/10/2016 имеет частоту 6 месяцев. Я нажимаю платную кнопку, и она добавляет 6 месяцев к следующей дате. IE 5/4/2017. Также термин изменяется, когда в следующий раз клиент платит.E.G. Срок 1 месяц. Он платит сегодня. 6 октября. Я нажимаю кнопку, а следующий платеж меняется 1 месяц. До 6 декабря. Он платит в декабре 3 месяца. Я меняю термин и нажимаю кнопку «Дата и дата» до 6 марта. Затем он платит 3 месяца в марте - я нажимаю, и он меняется до 6 июня 17 все автоматически.

Как рассчитать его через vba excel?

ответ

1

Это легко можно сделать без VBA, используя формулу.

Во-первых, я предлагаю вам изменить текстовые значения от «6 месяцев» до цифр. Легко отформатировать номер для показа со словом «месяц» после него, используя пользовательский формат 0 \mo\nt\h. Затем вы можете использовать формулу, как

=EDATE(B2,A2) 

Если вы не хотите, чтобы изменить текстовые значения, вы можете сделать это в-формуле с функцией замещающего, как это:

=EDATE(B2,SUBSTITUTE(A2," month","")+0) 

Пуск в строке 2 и скопируйте.

Если вам действительно нужно это в VBA, вы можете использовать Application.WorksheetFunction.EDate() с тем же эффектом.

+0

Да. это полезно, когда TERM имеет только 1 значение. Каждая ячейка в столбце TERM имеет 4 значения, такие как список или массив. Поэтому, когда я изменяю значение в формуле списка, исчезают. – fiz

+0

На вашем снимке экрана каждая ячейка в TERM имеет только одно значение. Если это НЕ, что вы хотите сделать, отредактируйте свой вопрос и предоставите образцы данных для ВСЕХ сценариев, которые вы хотите решить. – teylyn