Я знаю только VBa (на самом деле я не знаю функций рабочей книги), так как вы не указываете, что вы хотите, этот VBa должен делать то, что вы хотите
Sub UpdateStatus()
Dim row As Integer
row = 2 ' sets the starting row
Dim statisticRow As Integer
statisticRow = 2
Do While (True) ' we must reset everything before we go on our quest. Be gone foul witch
If Range("F" & statisticRow).Value = "" Then
Exit Do
End If
Range("F" & statisticRow).Value = ""
Range("G" & statisticRow).Value = ""
Range("H" & statisticRow).Value = ""
statisticRow = statisticRow + 1
Loop
Do While (True)
Dim currentValue As String
currentValue = Range("A" & row).Value
Dim otherValue As String
If currentValue = "" Then
Exit Do
End If
Dim otherRow As Integer
otherRow = 2 ' sets the starting row where the results are
Do While (True) ' find it or add it
otherValue = Range("F" & otherRow).Value
Dim currentValueStatus As String
If otherValue = "" Then
currentValueStatus = Range("B" & row).Value
Range("F" & otherRow).Value = currentValue
If currentValueStatus = "closed" Then
Range("H" & otherRow).Value = 1
End If
If currentValueStatus = "PENDING" Then
Range("G" & otherRow).Value = 1
End If
Exit Do
End If
If currentValue = otherValue Then ' Good news sire, I found it
currentValueStatus = Range("B" & row).Value
If currentValueStatus = "closed" Then
Range("H" & otherRow).Value = Range("H" & otherRow).Value + 1
End If
If currentValueStatus = "PENDING" Then
Range("G" & otherRow).Value = Range("G" & otherRow).Value + 1
End If
Exit Do
End If
otherRow = otherRow + 1
Loop
row = row + 1
Loop
End Sub
До
И после того, как я запускаю макрос
Как видите, он автоматически введет названия компаний для вас и определит, сколько из них существует. Это означает, что если вы добавили новую компанию и снова запустили макрос, он будет обновлен новыми деталями без каких-либо изменений в коде.