Я получил это сообщение об ошибке - Procedure too large
- в VBA. В чем причина и выход этой ошибки?Процедура слишком большая
ответ
Возможно, у вас есть одна или несколько гигантских процедур/функций, и я думаю, что у VBA есть предел 64k или что-то в каждой процедуре.
Вы исправляете это, разбивая эту процедуру на несколько процедур, которые затем могут быть вызваны одной процедурой.
Так вместо того, чтобы:
Sub GiantProcedure()
... ' lots and lots of code
End Sub
Вы бы что-то вроде:
Sub GiantProcedure()
... ' a little bit of common code
Proc1()
Proc2()
Proc3()
End Sub
Sub Proc1()
... ' quite a bit of code
End Sub
Sub Proc2()
... ' quite a bit of code
End Sub
Sub Proc3()
... ' quite a bit of code
End Sub
Вашей скомпилированных процедуры не может превышать 64 Кбайт. Вы должны разбить его на разные подпрограммы.
Или иначе рефакторируйте метод. –
Вы можете получить сообщение об ошибке, если макрос был создан с использованием 64-разрядной версии Office. Обратитесь к следующей статье для получения дополнительной информации и обходной путь:
Эта ошибка прямо из 1980-х годов ... VBA достиг нового уровня архаично ... лицо ладонью –