在我的Excel表格「進度狀態」中,我有2列,第一列包含在我的循環和第二列中包含的所有測試用例的列表I想從名爲「All run TestCases」的其他工作表中獲得測試用例的最新狀態。按日期和時間檢索值的最新狀態
我試過使用一些excel函數來獲取最新的日期和時間,以便我可以獲得測試用例的最新狀態,但是我沒有成功,因爲我對它們沒有深入的瞭解,請有人可以請幫助我。 The picture shows how my two sheet look like.
在我的Excel表格「進度狀態」中,我有2列,第一列包含在我的循環和第二列中包含的所有測試用例的列表I想從名爲「All run TestCases」的其他工作表中獲得測試用例的最新狀態。按日期和時間檢索值的最新狀態
我試過使用一些excel函數來獲取最新的日期和時間,以便我可以獲得測試用例的最新狀態,但是我沒有成功,因爲我對它們沒有深入的瞭解,請有人可以請幫助我。 The picture shows how my two sheet look like.
好的,這裏是答案。請確保executionDate和executionTime列分別以日期和時間格式。使用以下功能=B3+C3
創建一個新列作爲FinalTime
。將其用於休息。
然後你可以使用下面的宏。如果點擊了OLEDB connection
,則可能需要在VBA屏幕中檢查Tools > preferences
。
我假設你的牀單名稱爲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
嗨 我會而是嘗試通過使用excelfunktion找到解決方案,但是謝謝任何方式 – user3551180
歡迎來到SO!請包括您迄今爲止所嘗試的內容。 [這裏有一些格式化任何代碼塊的幫助](https://stackoverflow.com/help/formatting),儘管在這種情況下用back-ticks包圍它應該沒問題。我懷疑INDEX(MATCH())的一些組合並添加另一列可以簡化您的問題,或者使用重數組公式可以做你想做的事。 – ti7
HI 我在工作表「進度狀態」中使用此代碼 = IF(MAX(IF(Progress Status!)F3 =所有運行TestCases!$ A $ 2:$ A $ 10; $ B $ 2:$ B $ 10));所有運行TestCases!$ D $ 3:$ D $ 10;「」) – user3551180
如果您只將一個列的日期和時間組合起來,這將會容易得多。 –