Originally Posted by mancubus
this is a better solution since it fills array with non error and non blank cells...
it clears contents of all cells in in col G starting from G4.
[VBA]
Sub copy_not_error_values_only()
Dim ws As Worksheet
Dim cll As Range, rng As Range
Dim NonErrors()
Dim i As Long
Set ws = Worksheets("Monthly Source")
With ws
If .Range("F2") = "HIGH RISK" Then
.Range("G4:G" & .Cells(.Rows.Count, "G").End(xlUp).Row).ClearContents
Set rng = .Range("C400:C5582")
For Each cll In rng
If Not IsError(cll.Value) Then
If Trim(cll.Value) <> vbNullString Then
ReDim Preserve NonErrors(i)
NonErrors(i) = cll.Value
i = i + 1
End If
End If
Next
.Range("G4").Resize(UBound(NonErrors) + 1, 1) = Application.Transpose(NonErrors)
End If
End With
End Sub
[/VBA]