Hello. Your VBA code is -a bit- weird.

Also, you forgot to upload your workbook to the Forum to better understand what you have.

Anyway, it seems that your main mistake is the way to populate the listbox. Try one of the following two modes:

Private Sub UserForm_Initialize()
ListBox1.List = Sheet4.Range("A1").CurrentRegion.Value
End Sub
Private Sub UserForm_Initialize()
ListBox1.Column = Sheet4.Range("A1").CurrentRegion.Value
End Sub