In answer as to why your code does not work, see this link from earlier tonite:
http://www.mrexcel.com/board/viewtopic.php?topic=2503&forum=2&2
In answer to your second question about how to make it work, try this modification of your code. It worked when I tested it:
Sub SelectRangeTakeTwo()
On Error GoTo e
Range("I" & Sheet2.[E37] & ":" & "I" & Sheet2.[E39]).Select
Exit Sub
e:
MsgBox "Place a valid numeral in E37 or E39" _
& vbCrLf & "of your Interface worksheet.", _
48, "Can't determine range"
End Sub
Very important, this will work only if your Interface sheet is VBA worksheet object #2 of your workbook. Press Alt+F11 to get into the Visual Basic Editor, and see the pane on the left entitled Project - VBAProject. If you don't see it, press Ctrl+R.
Then, find your workbook name, in the syntax VBAProject (WorkbookName), double click to open it, and then open the folder titled "Microsoft Excel Objects". My guess is you will a sheet name, in the syntax Sheet#(Interface), where # is the sheet object number for your Interface sheet. If that number is not 2, then modify this code by plugging in whatever number that Interface sheet is.