Something went wrong with my code it only does the first column, but when i first tested this it did all columns that had data in them.

Sub FillIns()

    Dim val As String
    val = ""
        
    For k = 1 To Sheet1.UsedRange.Columns.Count
    
        For i = 2 To 25500
            If Cells(i, k).Value = "" Then
                Cells(i, k).Value = val
            ElseIf Cells(i, k).Value = "99" Or Cells(i, k).Value = 99 Then
                Exit For
            Else
                val = Cells(i, k).Value
            End If
        Next i
    Next k
    
    MsgBox ("all done!")
    
End Sub