Vb.net中的日期检查

时间:2016-10-12 10:00:07

标签: excel vb.net date visual-studio-2013 excel-2013

我有一个问题,在excel中,一列包含表格中的唯一编号:mmdd后跟序列号01,02 ..例如:101201(10:月,12:今天的日期,01:第一个条目), 101202。 现在,我需要的是我在vb.net中的表单应该采用最后输入的数据(例如:101202)检查它是否是今天的日期。如果是,那么它应该添加1并将其显示在消息框中。(是的,然后应该显示101203)。如果没有,那么它应该采用当前日期并从01开始(101301,以防日期为2016年10月13日)。 我设法从前一行获取数据。但是我应该如何检查日期? 请帮忙!

   Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
    xlWorkBook = xlApp.Workbooks.Open("C:\Users\Desktop\testing.xlsx")
    'xlApp.Visible = True
    xlWorkSheet = xlWorkBook.Sheets("Sheet1")

    Dim row As Long
    row = 1
    With xlWorkSheet
        While .Cells(row, 2).value IsNot Nothing
            row = row + 1
        End While
        'MsgBox(row - 1)
    End With

    Dim r As Excel.Range
    Dim t As String = Format(Today, "MMdd")
    If xlWorkSheet.Cells(row - 1, 4).value Is Nothing Then
        Me.txtQuote.Text = t & "01"
    Else
        r = xlWorkSheet.Cells(row - 1, 4)
        Me.txtQuote.Text = (r.Value + 1)
    End If

'this is wrong and I know it's wrong
    If r.Value = Date.Today Then
        MsgBox("true")
    Else
        MsgBox("false")
    End If

End Sub

1 个答案:

答案 0 :(得分:1)

将其放在您撰写'this is wrong and I know it's wrong

的位置
Dim rDate As String = CStr(r.Value).Substring(0, 4)
If rDate = t Then
    MsgBox("true")
Else
    MsgBox("false")
End If

rDate基本上抓住了r的前4位数,所以现在你可以将它与今天的日期进行比较。我还使用t替换了今天的日期,因为您已t已使用所需格式的今天日期。

另外,将变量命名为tr会使得很难理解它们的用途。