>Me.ListBox1.RowSource = Sheets("P1").Range("AF10:AF20").Address
では、
Me.ListBox1.RowSourceの「値」は、"$AF$10:$AF$20"になりシート名が付きません。
結果として、アクテイブシートと解釈されまます。
シートを可変にしたいものと、考えると
ユーザーフォームを表示する前に
Public mySheet As Worksheet
Set mySheet = Sheets("P1")
Userform1.Show
Private Sub UserForm_Activate()
With mySheet
Me.ListBox1.RowSource = .Name & "!" & .Range("F10:F20").Address(0, 0)
End With
MsgBox Me.ListBox1.RowSource
End Sub
このようにするとよいと考えます。