Q:

Mismatch type errors involving Columns("U2:U") and cells( , ).address

I am currently trying to create a programme that finds the "Reliability Fail" header and checks whether the data below this header is >0. If is more than 0, it will offset(0,3) to the right and put the value that i have obtained using left function .As i am still not very familiar with VBA syntax, im facing the mismatch type error as shown below. Does anybody knows how to solve it?
 Dim arr As Variant
    With Application
    Dim ws1 As Worksheet: Set ws1 = ThisWorkbook.Sheets(1)
    Dim z As Long
    Dim lastrow2 As Long
    Dim result As Long
    lastrow2 = ws1.Columns("U2:U").Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByRows).Row '--->**mistmatch error here**
    arr = .Transpose(ws1.Range("T1:W1").Value)
    For p = 2 To lastrow2
    If .Count(.Match(Array("Reliability Fail"), arr, 0)) = 1 And ws1.Cells(p, "U") > 1 Then
    result = ws1.Cells(p, "U").Address(False, False) '---->**mismatch error here**
    ws1.Cells(Range("result").Row, Range("result").Column).Offset(0, 3) = Left(output, Len(output) - 1)
    End If
    Next

End With

Updated changes:
Dim arr As Variant
With Application
Dim ws1 As Worksheet: Set ws1 = ThisWorkbook.Sheets(1)
Dim z As Long
Dim lastrow2 As Long
Dim resultRng As Range
Set resultRng = ws1.Cells(p, "U")
lastrow2 = ws1.Columns("U2:U & ws1.Rows.Count").Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByRows).Row
arr = .Transpose(ws1.Range("T1:W1").Value)
For p = 2 To lastrow2
If ws1.Range("U1") = "Reliability Fail"And resultRng > 1 Then
ws1.Cells(p, "U").Offset(0,3).Value = Left(output, Len(output) - 1)
End If
Next
End With

A:

"U2:U" is not a valid range (or column) reference.  You need a row number. And use Range instead of Columns: ws1.Range("U2:U" & ws1.Rows.Count). Though I really think you just need ws1.Columns("U:U") here.
Range.Address returns a String, e.g. $A$1, not a Long.
Simplifying, just change 
result = resultRng.Address(False, False)
resultRng.Offset(0,3) = Left(output, Len(output) - 1)

to
ws1.Cells(p, "U").Offset(0,3).Value = Left(output, Len(output) - 1)

Thanks to @Scott Craner for incorporating these changes into the following revised code:
Dim ws1 As Worksheet
Set ws1 = ThisWorkbook.Sheets(1)

If ws1.Range("U1") = "Reliability Fail" Then
    Dim lastrow2 As Long
    lastrow2 = ws1.Range("U2:U" & ws1.Rows.Count).Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByRows).Row

    For p = 2 To lastrow2
        If ws1.Cells(p, "U").Value > 1 Then
            ws1.Cells(p, "U").Offset(0, 3).Value = Left(output, Len(output) - 1)
        End If
    Next
End If

