Форум по VBA и MS Office

VBA, Excel => VBA, макросы в Excel => Тема начата: Посетитель от 28 октября 2021, 13:35

Название: 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()

Почему происходит ошибка? Как исправить ошибку?
Название: Re: VBA. Type mismatch: array or user-defined type expected.
Отправлено: Администратор от 28 октября 2021, 14:04
В основной процедуре у массива "Files" тип данных Variant.
В дочерней процедуре у массива "Arr" тип данных String.
Ошибка происходит из-за несоответствия типов данных.

Чтобы не было ошибки, в основной процедуре сделайте у массива тип данных "String":
Dim Files() As String
Название: Re: VBA. Type mismatch: array or user-defined type expected.
Отправлено: Посетитель от 28 октября 2021, 14:48
Спасибо, проблема решена.