give this a try.
Also, you need to remove your Formatting of your cells, set them back to General.
Option Explicit
Sub Main()
Dim WS As Worksheet
Dim LastRow As Long
Dim lRow As Long
Dim PhoneNumber As String
Set WS = ThisWorkbook.Worksheets("WorkingCopy")
LastRow = FindLastRow(WS, "A")
For lRow = LastRow To 2 Step -1
With WS
PhoneNumber = .Cells(lRow, "A")
If Len(PhoneNumber) < 10 Then
.Rows(lRow & ":" & lRow).Delete
Else
If Left(PhoneNumber, 1) <> 1 Then
.Cells(lRow, "B") = "1" & PhoneNumber
Else
.Cells(lRow, "B") = PhoneNumber
End If
Select Case Left(PhoneNumber, 1)
Case Is = 1
.Cells(lRow, "C") = "(" & Mid(PhoneNumber, 2, 3) & ")" & Mid(PhoneNumber, 5, 10)
.Cells(lRow, "D") = Mid(PhoneNumber, 2, 10)
Case Else
.Cells(lRow, "C") = "(" & Left(PhoneNumber, 3) & ")" & Mid(PhoneNumber, 3, 10)
.Cells(lRow, "D") = PhoneNumber
End Select
End If
End With
Next lRow
Set WS = Nothing
End Sub
Function FindLastRow(ByVal WS As Worksheet, ColumnLetter As String) As Long
FindLastRow = WS.Range(ColumnLetter & Rows.Count).End(xlUp).Row
End Function