Как исправить ошибку «значение, используемое в формуле неверного типа данных» при попытке преобразовать диапазон в массив? - PullRequest
0 голосов
/ 30 мая 2019

Я делаю udf для преобразования введенного диапазона в массив, и если все сделано успешно, функция вернет "сработало" в ячейку. Тем не менее, он продолжает возвращать #VALUE !, и говорит:

"значение, используемое в формуле, имеет неправильный тип данных."

Function test(rng As Range) As String

Dim Arr() As Variant
Arr = Range(rng)

test="worked"

End Function

Ответы [ 2 ]

3 голосов
/ 30 мая 2019

использование:

Function test(rng As Range) As String

    Dim Arr As Variant
    Arr = rng

    test = "worked"

End Function
1 голос
/ 30 мая 2019

Печатал это как комментарий, но добавлял как ответ из-за содержания.Обратите внимание, что @DisplayName дал соответствующий ответ для решения вашей проблемы.

В вашем коде вы используете Range () с неправильным синтаксисом.Вот несколько примеров соответствующих ссылок на диапазон:

Sheets("Name).Range("A1")  'Uses cell A1 on sheets Name
Sheets("Name").Cells(1,1)  'Just like the above, calls cell A1

i = 1
Sheets("Name).Range("A" & i)  'Ampersand joins the variable i (typically used to iterate through a loop) with the column "A"

Sheets("Name").Range("Cat")  'Uses a named range, where cat is predefined and is on sheets Name

With Sheets("Name")
    Set rng = .Range(.Cells(1,1),.Cells(2,2)) 'Creates a range from A1 to B2... note the dots to make them use the appropriate sheet 
End With
rng.value = "Cat"  'Each cell in the range will have "Cat" input
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...