2016-10-06 16 views
-1

私は、支払いを監視するExcelシートを持っています。顧客は、毎月1回、3回、6回、12回などの分割払いで支払うことができます。VBA日付機能

お客様が今日支払う場合。 5/10/2016に6ヶ月の頻度があります。支払い済みのボタンをクリックして、6ヶ月を次の期日に追加します。 IE 5/4/2017次回顧客が支払うときの用語の変更.E.G. 1ヶ月間彼は今日を支払う。 10月6日。私はボタンをクリックし、次の支払いは1ヶ月に変わります。 12月6日まで彼は12月3月に支払います。私は期間を変更し、ボタンと日付の変更を3月6日にクリックします。その後、彼は3月に3ヶ月を支払う - 私はクリックし、6月6日にはすべて自動的に変更されます。

vbaで計算するにはどうすればいいですか?

答えて

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の各セルには1つの値しかありません。それがあなたのやりたいことではない場合は、あなたの質問を編集し、解決したいすべてのシナリオのサンプルデータを提供してください。 – teylyn