Несмотря на комментарии вышеупомянутого гуру, попытка: (изменить выбранный диапазон только на первую ячейку) (настройте RefEdit1 на свое имя RefEdit и используйте KeyDown-событие, чтобы убедиться, что диапазоны не вводятся)
Private Sub RefEdit1_Change()
Dim x As Variant, apo As String
On Error Resume Next 'just to make sure
If InStr(1, RefEdit1.Text, "'") > 0 Then apo = "'" 'for sheetnames with spaces
If InStr(1, RefEdit1.Text, "!") > 0 Then
x = Split(RefEdit1.Value, "!")
If InStr(x(0), ":") > 0 Then x(0) = apo & Application.Substitute(Split(x(0), ":")(0), "'", "") & apo
Sheets(Application.Substitute(Split(x(0), ":")(0), "'", "")).Activate
'splitting on : for selecting multiple sheets, Activate for first selected sheet
RefEdit1.Value = x(0) & "!" & Range(x(1)).Cells(1).Address(True, True)
End If
End Sub