按日期和时间检索值的最新状态

时间:2016-12-29 06:12:20

标签: excel datetime

在我的Excel工作表“进度状态”中,我有2列,第一列包含在我的周期中包含的所有测试用例的列表,在第二列中我希望从中获取测试用例的最新状态另一张名为“All run TestCases”的表格。

我尝试使用一些excel函数来获取最新的日期和时间,以便我可以获得测试用例的最新状态,但我没有成功,因为我对他们没有深入的了解,有人可以请帮助我这个。The picture shows how my two sheet look like.

1 个答案:

答案 0 :(得分:0)

好的,这就是答案。确保executionDate和executionTime列分别采用日期和时间格式。使用以下函数FinalTime创建一个新列=B3+C3。其余用于此。
然后你可以使用下面的宏。如果点击了Tools > preferences,您可能需要在VBA屏幕中查看OLEDB connection。我认为您的工作表的名称为TestCasesProgressStatusTest case name的标题已更改为Test。您可以在工作表上或宏中更改它们。

Sub makro()

Dim deneme As String
Dim queryStr As String
Dim con As Object, rs As Object, sorgu$, a$
    Set con = CreateObject("adodb.connection")
    Set rs = CreateObject("adodb.recordset")
    con.Open "provider=microsoft.ace.oledb.12.0;data source=" & _
    ThisWorkbook.FullName & ";extended properties=""Excel 12.0;hdr=yes"""

queryStr = "Select u.[Test]" & _
      ",u.[Status] " & _
    "From [TestCases$] As u " & _
    "Inner Join ( " & _
    "Select [Test] " & _
          ",max(FinalTime)  as [LastDate] " & _
        "From [TestCases$] " & _
        "Group By [Test]) As [q] " & _
"On u.Test = q.Test " & _
" And u.FinalTime = q.LastDate"

    Set rs = con.Execute(queryStr)
    Sheets("ProgressStatus").Range("A2").CopyFromRecordset rs

    Set rs = Nothing
    Set con = Nothing

End Sub

这是TestCase和ProgressStatus-我使用的结果表。 TestCases ProgressStatus