Printer names are very particular - if it is not entered exactly as Windows expects it, you will get an error. (Since you did not note the specific error message in your question, I am assuming this is where the problem is; it is the most likely issue.)
What I've done in this situation is provide the user with a list of available printers. You can use this code to populate a list (called lstPrinters):
Private Sub LoadPrintersListBox()
Dim prtLoop As Printer
Dim strListRowSource As String
For Each prtLoop In Application.Printers
strListRowSource = strListRowSource + prtLoop.DeviceName + ";"
Next prtLoop
lstPrinters.RowSource = strListRowSource
End Sub
Then, you can use the user's selection to set the printer. (This code assumes a button called cmdSetPrinter is available, that the user will click once the printer is selected.)
Private Sub cmdSetPrinter_Click()
Application.ActivePrinter = lstPrinters.Column(0)
End Sub
You can be confident that the printers in the list are named according to what the system will need, and you don't need to worry about typos.