This array is fixed or temporarily locked (Visual Basic)

This error has the following possible causes:

  • Using ReDim to change the number of elements of a fixed-size array.

  • Redimensioning a module-level dynamic array, in which one element has been passed as an argument to a procedure. If an element is passed, the array is locked to prevent deallocating memory for the reference parameter within the procedure.

  • Attempting to assign a value to a Variant variable containing an array, but the Variant is currently locked.

To correct this error

  1. Make the original array dynamic rather than fixed by declaring it with ReDim (if the array is declared within a procedure), or by declaring it without specifying the number of elements (if the array is declared at the module level.

  2. Determine whether you really need to pass the element, since it is visible within all procedures in the module.

  3. Determine what is locking the Variant and remedy it.

See also