Это действительно простая ошибка, которую нужно исправить: Set Z = Range(UserCol & "5")
Почему? Потому что, когда вы используете неявное преобразование, набирая UserCol & 5
, VBA включает пробел между UserCol и 5 (а также после 5).
Вот тест:
MsgBox "A" & 5 'Outputs "A 5 "
MsgBox "A" & "5" 'Outputs "A5"
(Как указывает Gravitate, Application.InputBox(" Please enter the column...", Type:=0)
- это формула, поэтому ввод "A" даст вам "=""A""
, а не "A"
, поскольку "=""A""5"
также не является допустимой ссылкой на ячейку, используйте Type:=2
для текста или InputBox(" Please enter the column...")
без Application.
или фильтрации типов)