Here is some commented code which achieves what you want. Note you may find this answer useful for finding the last row.
This code avoids actually using cut and paste because that is slow. Instead, it directly accesses the cells' values.
Sub CopyBeforeHS()
Dim r As Long, HSindex As Long
' There are many ways to find the last row, or just replace 100 manually here
' You must start at row 2, as r-1 is used in the loop
For r = 2 To 100
' Your sheet name here...
With ThisWorkbook.Sheets("Sheet1")
' Get location of "HS" in each cell in column A
HSindex = InStr(.Range("A" & r).Value, "HS")
' If HS was found AND it wasn't the first characters
If HSindex > 1 Then
' Copy cell text from before "HS" to previous row, column N
.Range("N" & r - 1).Value = Left(.Range("A" & r).Value, HSindex - 1)
' Remove the same text from column A
.Range("A" & r).Value = Mid(.Range("A" & r).Value, HSindex)
End If
End With
Next r
End Sub