Хорошо, вот ответ. Убедитесь, что столбцы executeDate и executeTime указаны в формате Date и Time соответственно. Создайте новый столбец как 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
Здесь представлены TestCases и ProgressStatus - с результатами, на которых я работал.
Добро пожаловать в SO! Пожалуйста, укажите, что вы пробовали до сих пор. [Вот некоторая помощь в форматировании любых кодовых блоков] (https://stackoverflow.com/help/formatting), хотя при этом в этом случае нужно делать все, чтобы закрыть обратные тики. Я подозреваю, что некоторая комбинация INDEX (MATCH()) и добавление другого столбца упростит вашу проблему, или, возможно, использование формулы тяжелого массива сделает то, что вы хотите. – ti7
HI Я использовал этот код в столбце «Последний статус» в листе «Состояние выполнения» = IF (MAX (IF (Статус выполнения!) F3 = Все прогоны TestCases! $ A $ 2: $ A $ 10; $ B $ 2: $ B $ 10)); Все запустите TestCases! $ D $ 3: $ D $ 10; "") – user3551180
Было бы намного проще, если бы вы просто комбинировали дату и время в одном столбце. –