VBA. Type mismatch: array or user-defined type expected.

Автор Посетитель, 28 октября 2021, 13:35

Посетитель

Происходит ошибка во время передачи массива из основной процедуры в дочернюю: Compile error: Type mismatch: array or user-defined type expected.

В основной процедуре я создаю массив так:
Dim Files()

В дочерней процедуре массив используется так:
Function SortArrayWithNumbers(Arr() As String) As String()

Почему происходит ошибка? Как исправить ошибку?

Администратор

В основной процедуре у массива "Files" тип данных Variant.
В дочерней процедуре у массива "Arr" тип данных String.
Ошибка происходит из-за несоответствия типов данных.

Чтобы не было ошибки, в основной процедуре сделайте у массива тип данных "String":
Dim Files() As String

Посетитель