2016-10-17 9 views
0

VBAの新機能です。私は、現在の日付と指定された日付との間の差をユーザから取得したい。これをどうすれば解決できますか? enter image description here計算ポイントボタンをクリックすると#NAMEが表示されますか?VBAの現在の日付と指定した日付との差異を取得するにはどうすればよいですか?

Private Sub Sum_Click() 
Dim LastRow As Long 

LastRow = Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row 
Range("F6:F" & LastRow).Formula = "=DateDiff(""y"", Now, c6)" 
End Sub 
+0

を使用することができます。代わりにRange( "F6:F"&LastRow).Formula = "= Now-c6" 'を使用してください – h2so4

+0

これを試しました。しかし、それは27の代わりに10146を与えました。これをどうすれば解決できますか? – tanzilamohita

+0

セルC6にはどの値がありますか? – h2so4

答えて

0

Range("F6:F" & LastRow).Formula = "=Text(Now()-C6, "y")"はそれを行う必要があります。

は、ここに私のコードです。

他のフォーマットオプションについてはtext functionを参照してください。特に

Image from the supplied link to support.office.com

+0

ありがとうございます:)それは動作します。 – tanzilamohita

+0

問題はありません。「今」と将来の日付の違いが必要な場合は、あまり興味深い結果を避けるために、将来の日付を最初に置く必要があることに留意してください。この点で、 'DateDif'はより強力なオプションであり、' text'で囲む必要はありません。 – Vegard

0

あなたは年間で差をつけたいので、あなたはDateDiff関数は、VBAのfonctionではなく、Excelの関数であるDATEDIF

Range("F6:F" & LastRow).Formula = "=DateDif(c6, Today(), ""y"")" 
+0

ありがとうございました:) – tanzilamohita

+0

これと別の日付の違いを追加したいと思います。これどうやってするの? Range( "F6:F"&LastRow).Formula = "DateDif(c6、Today()" "y" "+ DateDif(E6、Today()、" y " ")" しかし、うまくいかなかった。私は何をすべきですか? – tanzilamohita

+0

「うまくいきませんでした」というフレーズは、まったく何も教えてくれません。何が起こった? 2年分の値を加算すると、どのようなメリットがありますか? – Rory

関連する問題