why doesn't this code work on a command button, but works as sub?

---------------------------------- Fails at > Range("A1").Select

Private Sub CommandButton2_Click()

' Application.ScreenUpdating = False
' SHOWS ONLY SHEETS "A"
For Each sh In Sheets
sh.Visible = True
Next sh
Sheets(Array("A 01", "A 02", "B 01", "B 02")).Select
ActiveWindow.SelectedSheets.Visible = False
Sheets("A 01").Visible = True
Sheets("A 02").Visible = True
Sheets("A 01").Select
Range("A1").Select
' Application.ScreenUpdating = True

End Sub

---------------------------------------------
Yet this works via Macro>Run>

Sub Macro1()

For Each sh In Sheets
sh.Visible = True
Next sh
Sheets(Array("A 01", "A 02", "B 01", "B 02")).Select
ActiveWindow.SelectedSheets.Visible = False
Sheets("A 01").Visible = True
Sheets("A 02").Visible = True
Sheets("A 01").Select
Range("A1").Select

End Sub

----------------------------------------------

This selects cell A1 on Sheet "A 01"

Does this have something to do with the command button still be selected? How to get around this?

Thanks for your input.

Bruce