Have to admit that Switch is not something I use very often, whereas Select Case is something that I use all the time.
As the article that Logit references, Switch is a function that returns a result, a bit like INDEX/MATCH in Excel proper, and is very limited in its actions. Select Case can set a value, or even many values, and can have many statements within each Case.
Comparing the two
res = Switch(Player = "Phelps", "Swmming", Player = "Nadal", "Tennis", Player = "Messi", "Football")
and
Select Case Player
Case "Phelps": res = "Swimming"
Case "Nadal": res = "Tennis"
Case "Messi": res = "Football"
End Select
which is better? I would say that is a matter of preference in the example above, although I admit I do not like that with switch the condition is repeated (I accept it means you can have different conditions, but you get the point).
As said, Select Case can have many statements within each Case, even another Case (I guess you could have a Switch within a Switch also)
Select Case Player
Case "Phelps":
Select Case Forename
Case "Ian: res = "Swimming"
Case Brian: res = "Beer drinking"
End Select
Case "Nadal": res = "Tennis"
Case "Messi": res = "Football"
End Select
One thing I like about Select Case is that you can have the condition in the Case statement rather than the Select statement, by testing for True
Select Case True
Case Player = "Phelps": res = "Swimming"
Case Sport = "Tennis": Player = "Phelps"
Case Player = "Messi": res = "Football"
End Select
Personally, I like Select Case, but Switch may be better in some circumstances and I have used it, it is certainly a useful VBA function .