excel添加几天到一个date,然后自动填充另一个单元格与它的单元格

如标题中所述,我需要在另一个工作表中的单元格自动填充已添加到当前date多天的新date,这里是我的代码,我无法工作:

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的这个命令,为了让这个代码能够完成我想完成的任务,我需要改变什么?

谢谢

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

看来你的destSheet没有初始化,而是sourceSheet是。 而要使用DateAdd,你需要一个Date对象,而不是一个string。 它应该是这样的:

 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 

添加一些评论给你的代码,希望这会有所帮助

 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