У меня проблема, которая кажется простой, но я не могу понять, в чем проблема с моим кодом.VBA: задать имя диапазона с переменной String
Dim x As Long, y As Long, z As Long
Dim ContractName As String
Dim RangeToName As Range
y = Cells(1, 1).End(xlToRight).Column
For x = 1 To y
ContractName = Cells(1, x)
z = Cells(Rows.count, x).End(xlUp).Row
Set RangeToName = Range(Cells(2, x), Cells(z, x))
RangeToName.Name = ContractName
Next x
End Sub
Я пытаюсь назвать диапазоны, основанные на тексте в ячейке «ContractName», которая изменится для каждого x.
Но строка «RangeToName.Name = ContractName» дает мне ошибку 450 во время выполнения.
Однако, если я добавляю какой-либо другой текст в этой строке, например, «RangeToName.Name =» test «& ContractName« все работает, и мои диапазоны называются полной строкой текста, включая текст в ячейке «ContractName». ..
Что мне не хватает?
Приветствия
Вы пробовали 'ContractName = Cells (1, x) .Value' или' ContractName = Cells (1, x) .Text'? – RubberDuck
Что вы пытаетесь сделать? – pnuts
@RubberDuck Привет, да, оба дают мне такую же ошибку 450. – vlad88667