Поделиться через


Необходимо использовать аргумент массива ByRef

Массивы, объявленные с оператором Dim, ReDim или Static не могут передаваться с параметром ByVal. Эта ошибка имеет следующие причину и решение:

  • Вы попытались передать весь массив с параметром ByVal. Отдельный элемент массива может быть передан с параметром ByVal (по значению), но весь массив должен передаваться с параметром ByRef (по ссылке). Обратите внимание, что параметр ByRef используется по умолчанию. Если необходимо передать массив ByVal , чтобы предотвратить распространение изменений элементов массива обратно в вызывающий объект, можно передать массив (аргумент) в собственном наборе круглых скобок или поместить его в Variant, а затем передать Variant в параметр ByVal следующим образом:
Dim MyVar As Variant 
MyVar = OldArray() 

Для получения дополнительной информации выберите необходимый элемент и нажмите клавишу F1 (для Windows) или HELP (для Macintosh).

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.