У меня есть большой кусок кода, который вручную определяет для меня каждый элемент массива, который раздражающе длинен и расположен в начале одной из моих функций. Я хотел бы скрыть код или установить его где-нибудь еще БЕЗ изменения его текущего значения, если это возможно. Я бы не хотел делать массив глобальным. Также нецелесообразно передавать массив из всех мест, где вызывается функция.

Есть ли способ просто разместить код в другом месте, в то время как VBA рассматривает его как часть функции, то есть как если бы у меня были все элементы, определенные в начале функции? Я представляю себе своего рода «Sub», который на самом деле не является Sub (я мог бы назвать его «Excerpt») кода с элементами, заполненными там одной строкой в ​​функции, которая вызывает «Excerpt» по имени.

0
Paul 5 Сен 2012 в 20:04

1 ответ

Лучший ответ

Вы можете вернуть массив из функции, чтобы он мог быть сам по себе в модуле;

public Function getArr() as string()
    Dim arr(10) as string
    ...
    arr(5) = "Cakey"
    getArr = arr
End Function

Вызывается с

Dim arry() as string: arry = getArr()
msgbox arry(5)
3
Alex K. 5 Сен 2012 в 20:08