比较单元格之间的日期值

时间:2019-08-21 13:53:32

标签: excel vba

  • 我正在尝试比较两个工作簿之间的单元格日期(wbkA的列A中的最后一个单元格,wbkB的单元格A9中的最后一个单元格)。
  • 如果wbkB的日期为= wbkA-1,则显示“好”
  • 包含日期的单元格格式:08/13/2019 00:00:00
  • 该脚本似乎找到了日期,但运行时出现类型不匹配错误。我在做什么错了?

以下是股票:

Sub CompareWorkbooks()

Dim varSheetA As Variant
Dim varSheetB As Variant
Dim dateA As String
Dim dateB As String


Set wbkA = Workbooks.Open(Filename:="C:\Users\xxx\2G.xlsx")
Set varSheetA = wbkA.Worksheets("2G Data")

Set wbkB = Workbooks.Open(Filename:="C:\Users\xxx\2G Data Traffic.xlsx")
Set varSheetB = wbkB.Worksheets("Sheet1")

dateA = wbkA.Worksheets("2G Data").Range("A" & Rows.Count).End(xlUp)
dateB = wbkB.Worksheets("Sheet1").Range("A9")

If dateB = dateA + 1 Then
MsgBox "good"
Else
MsgBox "badd"
Exit Sub

End If


End Sub

2 个答案:

答案 0 :(得分:1)

您将dateA和dateB声明为字符串,然后尝试向它们添加一个值并进行比较,但这将无法正常工作。相反,请尝试将它们声明为日期:

Dim dateA As Date
Dim dateB As Date

答案 1 :(得分:0)

首先将您的日期声明为日期。尝试使用DateAdd函数。尝试在字符串或日期中添加1不会找到您想要的内容。

这是一个例子:

Sub CompareWorkbooks()

Dim varSheetA As Variant
Dim varSheetB As Variant
Dim dateA As Date
Dim dateB As Date


Set wbkA = Workbooks.Open(Filename:="C:\Users\xxx\2G.xlsx")
Set varSheetA = wbkA.Worksheets("2G Data")

Set wbkB = Workbooks.Open(Filename:="C:\Users\xxx\2G Data Traffic.xlsx")
Set varSheetB = wbkB.Worksheets("Sheet1")

dateA = wbkA.Worksheets("2G Data").Range("A" & Rows.Count).End(xlUp)
dateB = wbkB.Worksheets("Sheet1").Range("A9")

    If dateB = DateAdd("d", 1, dateA) Then
        MsgBox "good"
    Else
        MsgBox "badd"
        Exit Sub

    End If


End Sub