Error 423, “Property or method not found”, means a member access named something the object does not expose. It is met most often in Automation, where VBA drives another application's object model (a document object, a database object, a control) and the member name, spelling, or availability differs from what the code assumes, sometimes because the object is a different class than expected, sometimes because the member exists only in another version. The name was not found on that object, at that moment; everything else about the call may be perfect.
TypeName(obj) at the failure. A variable expected to hold one class frequently holds a related but different one whose member set differs by exactly the missing name.Debug.Print TypeName(doc) ' confirm the class first ' Then check the member in the Object Browser for THAT class, ' not the class the code was written against last year.
If the class is right and the member is documented, the reference may be resolving to an older type library than the installed program provides: check Tools, References for the version actually bound, and for MISSING or duplicate libraries of the same name in different versions.
Is error 423 a typo in my code? Often effectively yes: a misspelled member name and a genuinely absent member are indistinguishable to the runtime. But version changes and wrong-class objects produce the identical error with perfectly spelled names.
Why does the same macro work on another machine? Because Automation resolves members against the installed program's object model. Different installed versions present different members, so identical code can succeed on one machine and raise 423 on another.