Copy Values VBA between two sheets

I am needing to copy data from Sheet1 to Sheet2 if Sheet1 column P is True.  The code below finds True but does not copy the values...  Can someone please take a look at the code.  I am also needing to paste the values on Sheet2 on the last empty row.
Thank you.  

Dim sh1 As Worksheet: Set sh1 = ThisWorkbook.Sheets("Master")
Dim sh2 As Worksheet: Set sh2 = ThisWorkbook.Sheets("Validation")
Dim RowSh1 As Long, RowSh2 As Long

RowSh1 = sh1.Range("A" & Rows.Count).End(xlUp).Row + 1
RowSh2 = sh2.Range("A" & Rows.Count).End(xlUp).Row

For x = 1 To RowSh1

    If Len(sh1.Cells(x, "P")) = True Then
        sh1.Cells(x, "A").Copy sh2.Cells(RowSh2, "B")
        sh1.Cells(x, "C").Copy sh2.Cells(RowSh2, "A")
        RowSh2 = RowSh2 + 1
    End If

Next x

End Sub
Who is Participating?
DOSLoverConnect With a Mentor Commented:
You are using Len function to check the value of P column, Instead I think the code should check the content of the cell. That is to say, your code copies data correctly from Master to Validation sheet, if you change the following line
          If Len(sh1.Cells(x, "P")) = True Then
          If  sh1.Cells(x, "P") = True Then
Martin LissOlder than dirtCommented:
What actual value do you use in column P to show that it's True?
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.