it might not look good but will do the job also:
Private Sub FillIn()
Const INPUT_SHEET As String = "Before"
Const IGNORE_WORDS As String = "|User|Workflow Activity Category|Workflow Activity|Total|"
Dim firstrow As Long, lastrow As Long
Dim i As Integer
Dim strValue1 As String
Dim strValue2 As String
With Sheets(INPUT_SHEET)
'hard-coded first row
firstrow = 6
lastrow = .Cells(.Rows.Count, 4).End(xlUp).Row
For i = firstrow To lastrow
'check if the Cell Value is not in IGNORE_WORDS list
If InStr(1, IGNORE_WORDS, "|" & .Cells(i, 1).Value & "|", vbTextCompare) = 0 And _
InStr(1, IGNORE_WORDS, "|" & .Cells(i, 2).Value & "|", vbTextCompare) = 0 And _
InStr(1, IGNORE_WORDS, "|" & .Cells(i, 4).Value & "|", vbTextCompare) = 0 Then
'it is not then
If Len(.Cells(i, 1) & "") <> 0 Then
strValue1 = .Cells(i, 1)
Else
.Cells(i, 1) = strValue1
End If
If Len(.Cells(i, 2) & "") <> 0 Then
strValue2 = .Cells(i, 2)
Else
.Cells(i, 2) = strValue2
End If
Else
strValue1 = ""
strValue2 = ""
End If
Next
End With
End Sub