Procedure Too Large

后端 未结 4 760
清歌不尽
清歌不尽 2020-12-01 23:43

I received this error message -Procedure too large - in VBA. What is the reason and way out for this error?

相关标签:
4条回答
  • 2020-12-02 00:00

    You probably have one or more gigantic procedures/functions and I think VBA has a limit of 64k or something per procedure.

    You fix it by splitting that procedure up into multiple procedures that can then be called by the one procedure.

    So instead of having:

     Sub GiantProcedure()
          ... ' lots and lots of code
     End Sub
    

    You'd have something like:

     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
    
    0 讨论(0)
  • 2020-12-02 00:01

    The idea of GiantProcedure didn't work for me, using Microsoft Powerpoint 2013. Then I added a "call" before each "proc". Like this:

    Sub GiantProcedure()
    
      Call Proc1()
      Call Proc2()
      Call Proc3()
    
    End Sub
    

    Now, it works.

    0 讨论(0)
  • 2020-12-02 00:17

    You might get this error message if the macro has been created using the 64-bit version of Office. See the following article for further details and a workaround:

    "Compile Error: Procedure too large" error message when you try to run a VBA macro in a 32-bit version of an Office 2010 program

    0 讨论(0)
  • 2020-12-02 00:22

    Your compiled procedure cannot exceed 64kb. You should break it up into different sub routines.

    http://msdn.microsoft.com/en-us/library/Aa264541

    0 讨论(0)
提交回复
热议问题