2015-07-21 511 views
-4

我想要一个vba代码来比较系统日期和我在excel工作表中的行(A)中提到的日期。如果日期相等,那么它应该比较系统时间和行(B)中提到的时间。例如:如果工作表中提到的时间是晚上7点30分,系统时间是下午7点,则应计算时间和显示之间的时间。如果工作表中的日期不匹配,则应该离开。Excel VBA代码来比较系统日期和工作表中的日期

在此先感谢。

+2

你尝试过什么吗?粘贴您的代码尝试,以便我们可以帮助您。 –

+0

您希望比较什么样的准确度?可能是几秒或几分钟。 –

+0

感谢您的回复。我应该显示几小时和几分钟。 – user1089660

回答

0

我放了一个小程序,让你开始。它假定工作表中的日期/时间位于单元格A1中。如果系统日期与单元格A1中的日期相同,则系统时间将与单元格A1中的时间进行比较。如果他们在一分钟内一样,那么什么都不会发生。

但是,如果他们不同,那么他们不同的分钟数出现在单元格B1中。

下面是代码:

Public Sub DateTimeCheck() 

    Dim d As Double 
    Dim s1 As String 
    Dim s2 As String 

    s1 = Format([a1], "dd-mm-yyyy hh:mm") 
    s2 = Format(Now, "dd-mm-yyyy hh:mm") 

    If Left$(s2, 10) = Left$(s1, 10) Then 
     d = TimeValue(Right$(s2, 5)) - TimeValue(Right$(s1, 5)) 
     If d Then 
      [b1] = d * 1440 
     End If 
    End If 

End Sub 

现在,如果你有更多的细胞与A列的日期,你想对他们进行比较,同时,那么您将需要修改这个代码,以便它“进程“ 他们全部。

至于将分钟的差异写入电子邮件......我们需要更多的细节!

+0

非常感谢。是的,我同意你的观点,如果没有正确的数据,它很难解释。我用这段代码启动了病毒,并让我知道我是否面临有关正确数据的任何问题。 – user1089660

+0

老实说,有人可以解释为什么这个答案被低估了吗?我只想知道,因为虽然问题很模糊,但我可以看到OP想要去哪里并提供帮助。这种胡说八道(这不是第一次)让我在这里分享我的知识不值得。 –

+1

我怀疑是因为它没有回答这个问题(通过你的错误 - 在目前的状态下似乎无法回答,因为你似乎同意)。你试图帮助OP会牺牲我未来访问的所有其他人,并且只能找到一个模糊问题的部分答案。这不是SE寻求的质量。 – pnuts