2016-06-14 13 views
0

タイトルにあるように別のシートにセルが必要です。現在の日付が、ここで私は仕事を得るカント私のコードです:Excelの日付に数日を追加して別のシートにセルを自動入力すると

Sub dateplus() 

Dim destSheet As Worksheet: Set destSheet = ThisWorkbook.Worksheets("Sheet1") 
Dim Ldate As Date 

Ldate = dateadd("d", 2, "6/14/2016") 

destSheet.range("A1").Value = Ldate 

End Sub 

私はDATEADDのこのコマンドを使用して、完全に慣れていないよ、私はこのコードは、私がしようとしています何をするために変更するには何が必要なのか達成する?

+1

あなたはVBA関数 'DateAdd関数()'と同じ名前である「DATEADD」の後に、あなたのサブを命名しているのに役立ちます願っています。したがって、 'Ldate = dateadd(" d "、2、" 6/14/2016 ")と入力すると、VBAは自分のサブを呼び出すと思っていますが、引数はありません。さらに、現在の日付を参照する場合は、VBAの 'Date()'関数を使用する必要があります。最後に、 'destSheet'を宣言していますが、' setSourceSheet = ThisWorkbook.Worksheets( "Sheet1") 'をセットしていますので、' destSheet.range( "A1")の 'destSheet'を参照すると、 Ldate'ステートメント。私の答えを参照 – user3598756

+0

ありがとう、 – Vbasic4now

+0

あなたを歓迎します。私の答えがあなたの質問を満たしていれば、それを合格とマークしてください。ありがとうございました – user3598756

答えて

1
Option Explicit 

Sub MyDateAdd() 
    Dim destSheet As Worksheet: Set destSheet = ThisWorkbook.Worksheets("Sheet1") 
    destSheet.Range("A1").Value = dateadd("d", 2, Date) 
End Sub 
1

ありがとう代わりにsourceSheetがある、あなたのdestSheetが初期化されていないようです。また、DateAddを使用するには、文字列ではなくDateオブジェクトが必要です。これは次のようになります。

Sub CustomDateAdd() 

Dim destSheet As Worksheet 
Dim Ldate As Date 

Set destSheet = ThisWorkbook.Worksheets("Sheet1") 
Ldate = DateAdd("d", 2, Now) 

destSheet.range("A1").Value = Format(Ldate,"MM/dd/yyyy") 

End Sub 

手動で計算する代わりにExcelの式を使用してみませんか?

Sub CustomDateAdd() 

Dim destSheet As Worksheet 
Set destSheet = ThisWorkbook.Worksheets("Sheet1") 

destSheet.range("A1").Formula = "=TODAY()+2" 

End Sub 
+0

ありがとう、これは私が探していたものです – Vbasic4now

0

は、あなたのコードにいくつかのコメントを追加しました。これは

Sub dateadd() ' Same name as a defined function, this will be a cause of Problems 

Dim destSheet As Worksheet: Set sourceSheet = ThisWorkbook.Worksheets("Sheet1") 'the variable sourceSheet is neither initialised nor used 
Dim Ldate As Date 

Ldate = dateadd("d", 2, "6/14/2016") 'the vba function you want to call is DateAdd, but here vba will call the sub dateadd because it has the same name. Will throw an Wrong Argument Count error. 

destSheet.Range("A1").Value = Ldate 

End Sub 
関連する問題