在我的Excel工作表“进度状态”中,我有2列,第一列包含在我的周期中包含的所有测试用例的列表,在第二列中我希望从中获取测试用例的最新状态另一张名为“All run TestCases”的表格。
我尝试使用一些excel函数来获取最新的日期和时间,以便我可以获得测试用例的最新状态,但我没有成功,因为我对他们没有深入的了解,有人可以请帮助我这个。The picture shows how my two sheet look like.
答案 0 :(得分:0)
好的,这就是答案。确保executionDate和executionTime列分别采用日期和时间格式。使用以下函数FinalTime
创建一个新列=B3+C3
。其余用于此。
然后你可以使用下面的宏。如果点击了Tools > preferences
,您可能需要在VBA屏幕中查看OLEDB connection
。我认为您的工作表的名称为TestCases
和ProgressStatus
。 Test 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