Você não pode definir uma legenda para um intervalo, que é o que seu código está fazendo (embora não seja sua intenção). Você deve definir a legenda como o valor do intervalo -
UserForm1.xTotal.Caption = ThisWorkbook.Sheets("Sheet1").Range("b4").End(xlDown).Value
Userform1.Show
Você também deseja definir a legenda antes de exibir o formulário do usuário.