0

好的,我会解释我试图实现的目标以及这个问题具体是什么。

我要达到
的目标是拥有一个 Excel 电子表格,其中包含一个注册日期和一个显示该注册日期何时需要更新的日期。一旦更新日期为注册日期后 18 个月,并且电子邮件(通过 CDO)发送到 Excel 电子表格中捕获的电子邮件地址。

这个问题

将我的最终目标分解为多个部分,我目前正在尝试弄清楚如何完成日期计算,以确定 18 个月是否已经结束。

我正沿着这条线前进

Sub TestDatediff()

Dim RegDate As Range
Dim UpDate As Range

Set RegDate = Sheets("Sheet1").Range("G4:G5")
Set UpDate = Sheets("Sheet1").Range("H4:H5")

Answer = DateDiff("m", RegDate, UpDate)
End Sub

RegDate是初始日期, UpDate是 RegDate 加上 18 个月。答案将是 2 之间的结果差异。这会给我一个价值来检查下一步......电子邮件。

但正如你可以猜到的那样,我哪儿也去不了。我有一种感觉你不能DateDiff一个范围?

关于如何处理最终游戏或如何解决当前问题的任何帮助都会很棒。

提前感谢您的帮助

4

2 回答 2

1

DateDiff 不能用于范围,只能用于单个值。也许您可以将一个单独的单元格指向该范围并从中创建一个值,然后 DateDiff 呢?或使用执行此操作的变量,例如:

UpDate = Sheets("Sheet1").Cells("H4") & Sheets("Sheet1").Cells("H5")

这可能需要一些调整,因为我不确定每个单元格中有什么,但你明白了。

于 2013-09-12T15:55:45.043 回答
0

这可能会有所帮助:

Sub LoopRange()
Dim rCell As Range, rRng As Range

Set rRng = Worksheets("DDRegister").Range("g4:g6")
    For Each rCell In rRng.Cells
        rCell.Activate
        ActiveCell.Offset(0, 1).FormulaR1C1 = "=RC[-1]+500"
        ActiveCell.Offset(0, 2).FormulaR1C1 = "=RC[-1]-Today()"
    Next rCell
End Sub  

应该取G4:G6注册日期,H4:H6分别加500天,H4:H6与今天比较。

于 2013-09-21T22:57:34.757 回答