excel - Runtime Error with Dictionary when using late binding but not early binding -


What am I doing that putting the dictionary into an array within a sub-routine

this Definition

The compiler says

Runtime Error 451: The process of going to property is not defined and the process of receiving the property process Do not come back an object.

  Public Sub-Rule (Scripting Dictionary as Dict)  

but not with <

& lt; Solution & gt;

You do this

  Variant redeem RR (0 to Dict. Ct - 1) as a slow arr (), Deck for C = 0 for. Calculation - 1ar (c) = dict. The next c  

But looping like this is quite unnecessary. This is the same as RR = dot.k.a. , so instead of the above, simply

  error = Dict.Cas  as the RAR = Pre> 

The added bonus is that makes this error go away


But why did the late version of the error code occur, but did not initialize?

& lt; Educate estimates slash wild speculation & gt;

With the initial binding, the compiler knows that no parameter takes - it just gives an array, so it is in the form of Dict.Keys (c) Returns {return array} (c) and c element of that returned array.

With late binding, I think the object container does not know that Keys do not take the parameter (aka logic), so it sends c as a parameter, but such an eater (or setter) is not defined, so error. To remedy, you can not send a parameter to the Keys method by calling Dict.Keys () (c) , which returns the {return array} (C) behavior.

& lt; / Educate estimates slash wild speculation & gt;

This is the first time that I take a case in a way where the late bound code behaves differently from the initial bound.


Comments