ਵਿਸ਼ਾ - ਸੂਚੀ
ਐਕਸਲ ਵਿੱਚ VBA ਦੇ ਨਾਲ ਕੰਮ ਕਰਦੇ ਸਮੇਂ ਸਾਡੇ ਸਾਹਮਣੇ ਆਉਣ ਵਾਲੀ ਸਭ ਤੋਂ ਆਮ ਗਲਤੀਆਂ ਵਿੱਚੋਂ ਇੱਕ ਇਹ ਹੈ ਕਿ ਉਪਭੋਗਤਾ ਦੁਆਰਾ ਪਰਿਭਾਸ਼ਿਤ ਕਿਸਮ ਪਰਿਭਾਸ਼ਿਤ ਨਹੀਂ ਹੈ। ਇਸ ਲੇਖ ਵਿੱਚ, ਮੈਂ ਤੁਹਾਨੂੰ ਦਿਖਾਵਾਂਗਾ ਕਿ ਇਹ ਗਲਤੀ ਕਿਉਂ ਹੋਈ ਹੈ ਅਤੇ ਇਸ ਗਲਤੀ ਨੂੰ ਕਿਵੇਂ ਹੱਲ ਕਰਨਾ ਹੈ।
ਪ੍ਰੈਕਟਿਸ ਵਰਕਬੁੱਕ ਡਾਊਨਲੋਡ ਕਰੋ
ਇਸ ਅਭਿਆਸ ਵਰਕਬੁੱਕ ਨੂੰ ਡਾਉਨਲੋਡ ਕਰੋ ਜਦੋਂ ਤੁਸੀਂ ਕਸਰਤ ਕਰਦੇ ਹੋ ਇਸ ਲੇਖ ਨੂੰ ਪੜ੍ਹ ਰਹੇ ਹਾਂ।
ਯੂਜ਼ਰ-ਪਰਿਭਾਸ਼ਿਤ ਕਿਸਮ ਪਰਿਭਾਸ਼ਿਤ ਨਹੀਂ ਹੈ। ਐਕਸਲ VBAਵਿੱਚ ਟਾਈਪ ਨਹੀਂ ਪਰਿਭਾਸ਼ਿਤ ਕੀਤਾ ਗਿਆ ਹੈ 2 ਐਕਸਲ VBA ਵਿੱਚ ਅਕਸਰ ਆਈ ਇਸ ਗਲਤੀ ਦੇ ਪਿੱਛੇ ਮੁੱਖ ਮੁੱਦੇ ਹਨ। ਆਉ ਉਹਨਾਂ ਦੀ ਵਿਸਥਾਰ ਨਾਲ ਪੜਚੋਲ ਕਰੀਏ ਅਤੇ ਉਹਨਾਂ ਨੂੰ ਹੱਲ ਕਰਨ ਦੇ ਤਰੀਕੇ ਲੱਭੀਏ।
1. ਵੇਰੀਏਬਲ ਘੋਸ਼ਿਤ ਕਰਦੇ ਸਮੇਂ ਸਪੈਲਿੰਗ ਗਲਤੀ
ਇਸ ਗਲਤੀ ਦੇ ਪਿੱਛੇ ਇਹ ਵੱਡਾ ਕਾਰਨ ਹੈ। ਬਹੁਤੀ ਵਾਰ, ਗਲਤੀ “ਉਪਭੋਗਤਾ-ਪ੍ਰਭਾਸ਼ਿਤ ਕਿਸਮ ਪਰਿਭਾਸ਼ਿਤ ਨਹੀਂ” ਵੇਰੀਏਬਲ ਘੋਸ਼ਿਤ ਕਰਦੇ ਸਮੇਂ ਇੱਕ ਸਪੈਲਿੰਗ ਗਲਤੀ ਕਾਰਨ ਹੁੰਦੀ ਹੈ।
ਕੋਡਾਂ ਦੀਆਂ ਹੇਠ ਲਿਖੀਆਂ ਲਾਈਨਾਂ ਨੂੰ ਦੇਖੋ।
2771
ਜੇਕਰ ਤੁਸੀਂ ਇਸ ਕੋਡ ਨੂੰ ਚਲਾਉਂਦੇ ਹੋ, ਤਾਂ ਤੁਹਾਨੂੰ ਗਲਤੀ ਦੀ ਮੌਜੂਦਗੀ ਬਾਰੇ ਸੂਚਿਤ ਕਰਨ ਵਾਲਾ ਇੱਕ ਗਲਤੀ ਬਾਕਸ ਮਿਲੇਗਾ "ਉਪਭੋਗਤਾ ਦੁਆਰਾ ਪਰਿਭਾਸ਼ਿਤ ਕਿਸਮ ਪਰਿਭਾਸ਼ਿਤ ਨਹੀਂ"। ਇਸਦੇ ਨਾਲ, ਤੁਹਾਨੂੰ ਨੀਲੇ ਰੰਗ ਵਿੱਚ ਉਜਾਗਰ ਕੀਤੀ ਕੋਡ ਦੀ ਦੂਜੀ ਲਾਈਨ ਮਿਲੇਗੀ, ਜਿੱਥੇ ਮੈਂ “ਸਟ੍ਰਿੰਗ” ਦੀ ਥਾਂ “strng” ਲਿਖਿਆ ਹੈ।
ਮੈਨੂੰ ਉਮੀਦ ਹੈ ਕਿ ਤੁਸੀਂ ਬਿੰਦੂ ਪ੍ਰਾਪਤ ਕਰੋਗੇ। VBA ਵੇਰੀਏਬਲ ਕਿਸਮ “strng” ਨੂੰ ਪਛਾਣ ਨਹੀਂ ਸਕਿਆ, ਇਸ ਲਈ ਇਸ ਨੇ ਇਸਨੂੰ ਇੱਕ ਨਵੀਂ ਵੇਰੀਏਬਲ ਕਿਸਮ ਮੰਨਿਆ ਅਤੇ ਸੋਚਿਆ ਕਿ ਤੁਸੀਂ ਇਸਨੂੰ ਕਿਤੇ ਪਰਿਭਾਸ਼ਿਤ ਕੀਤਾ ਹੈ। ਪਰ ਜਦੋਂ ਇਹਪਾਇਆ ਗਿਆ ਕਿ ਤੁਸੀਂ ਇਸਨੂੰ ਕਿਤੇ ਵੀ ਘੋਸ਼ਿਤ ਨਹੀਂ ਕੀਤਾ ਹੈ, ਇਸ ਨੇ ਇੱਕ ਗਲਤੀ ਪੈਦਾ ਕੀਤੀ ਹੈ।
ਇਸ ਲਈ, ਸਧਾਰਨ VBA ਕੋਡ ਚਲਾਉਣ ਵੇਲੇ, ਜੇਕਰ ਤੁਹਾਨੂੰ ਕਿਸੇ ਵੀ ਤਰ੍ਹਾਂ ਇਹ ਗਲਤੀ ਆਉਂਦੀ ਹੈ, ਤਾਂ ਪਹਿਲਾਂ ਆਪਣੇ ਵੇਰੀਏਬਲ ਕਿਸਮਾਂ ਦੇ ਸਾਰੇ ਸਪੈਲਿੰਗਾਂ ਦੀ ਜਾਂਚ ਕਰੋ।
2. ਸਹੀ ਸੰਦਰਭ ਦੀ ਘਾਟ
ਇਹ ਇਸ ਗਲਤੀ ਦੇ ਪਿੱਛੇ ਇੱਕ ਹੋਰ ਕਾਰਨ ਹੈ। ਇਹ ਸਹੀ ਸੰਦਰਭ ਦੀ ਘਾਟ ਹੈ. ਕਈ ਵਾਰ ਅਸੀਂ ਆਪਣੇ ਕੋਡਾਂ ਵਿੱਚ ਕੁਝ ਵਸਤੂਆਂ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਾਂ ਜਿਨ੍ਹਾਂ ਨੂੰ ਵਿਜ਼ੂਅਲ ਬੇਸਿਕ ਰੈਫਰੈਂਸ ਬਾਕਸ ਤੋਂ ਸਹੀ ਹਵਾਲਾ ਦੇਣ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। ਨਹੀਂ ਤਾਂ, VBA ਵਸਤੂ ਨੂੰ ਨਹੀਂ ਪਛਾਣਦਾ।
ਹੇਠ ਦਿੱਤੇ VBA ਕੋਡ ਨੂੰ ਦੇਖੋ।
9603
ਇਸ ਕੋਡ ਨੂੰ ਚਲਾਓ. ਤੁਹਾਨੂੰ ਉਹੀ ਪੁਰਾਣੀ ਗਲਤੀ ਮਿਲੇਗੀ “ਉਪਭੋਗਤਾ-ਪ੍ਰਭਾਸ਼ਿਤ ਕਿਸਮ ਪਰਿਭਾਸ਼ਿਤ ਨਹੀਂ”, ਡਕਸ਼ਨਰੀ ਆਬਜੈਕਟ ਨੂੰ ਹਾਈਲਾਈਟ ਕਰਦੇ ਹੋਏ। ਇਹ ਇਸ ਲਈ ਹੈ ਕਿਉਂਕਿ VBA ਡਿਕਸ਼ਨਰੀ ਆਬਜੈਕਟ ਨੂੰ ਪਛਾਣ ਨਹੀਂ ਸਕਿਆ, ਅਤੇ ਇਸਨੂੰ ਉਪਭੋਗਤਾ ਦੁਆਰਾ ਪਰਿਭਾਸ਼ਿਤ ਵੇਰੀਏਬਲ ਮੰਨਿਆ ਗਿਆ ਹੈ, ਜਿਸ ਨੂੰ ਗਲਤੀ ਨਾਲ ਪਰਿਭਾਸ਼ਿਤ ਨਹੀਂ ਕੀਤਾ ਗਿਆ ਹੈ।
ਹੁਣ ਸਭ ਤੋਂ ਵੱਡਾ ਸਵਾਲ ਇਹ ਹੈ ਕਿ ਇਸ ਗਲਤੀ ਨੂੰ ਕਿਵੇਂ ਹੱਲ ਕੀਤਾ ਜਾਵੇ? ਆਸਾਨ. ਇਸ ਗਲਤੀ ਨੂੰ ਹੱਲ ਕਰਨ ਦੇ 2 ਤਰੀਕੇ ਹਨ।
⧪ ਹੱਲ 1: ਵਿਜ਼ੂਅਲ ਬਾਕਸ ਰੈਫਰੈਂਸ ਬਾਕਸ ਤੋਂ ਪੂਰਵ-ਲੋੜੀਂਦੇ ਸੰਦਰਭ ਦੀ ਜਾਂਚ ਕਰਨਾ
ਇਹ ਹੈ ਇਸ ਸਮੱਸਿਆ ਨੂੰ ਹੱਲ ਕਰਨ ਦਾ ਸਭ ਤੋਂ ਵਧੀਆ ਤਰੀਕਾ. ਟੂਲਜ਼ > 'ਤੇ ਜਾਓ ਵਿਜ਼ੂਅਲ ਬੇਸਿਕ ਰਿਬਨ ਵਿੱਚ ਹਵਾਲੇ ਬਟਨ। ਹਵਾਲੇ 'ਤੇ ਕਲਿੱਕ ਕਰੋ।
ਇੱਕ ਡਾਇਲਾਗ ਬਾਕਸ ਜਿਸ ਨੂੰ ਹਵਾਲੇ ਕਿਹਾ ਜਾਂਦਾ ਹੈ ਖੁੱਲ੍ਹੇਗਾ। ਸਕ੍ਰੌਲ ਕਰੋ ਅਤੇ ਲੱਭੋ Microsoft Scripting Runtime (ਇਹ ਉਸ ਵਸਤੂ 'ਤੇ ਨਿਰਭਰ ਕਰਦਾ ਹੈ ਜੋ ਤੁਸੀਂ ਵਰਤ ਰਹੇ ਹੋ। ਸ਼ਬਦਕੋਸ਼ਆਬਜੈਕਟ ਨੂੰ ਮਾਈਕ੍ਰੋਸਾਫਟ ਸਕ੍ਰਿਪਟਿੰਗ ਰਨਟਾਈਮ ਪਛਾਣੇ ਜਾਣ ਦੀ ਲੋੜ ਹੈ। ਇਸ ਲਈ, VBA ਕੋਡ ਵਿੱਚ ਇੱਕ ਵਸਤੂ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਸਮੇਂ, ਤੁਹਾਨੂੰ VBA ਦੁਆਰਾ ਮਾਨਤਾ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਇਸਦੀ ਪੂਰਵ ਸ਼ਰਤ ਨੂੰ ਜਾਣਨਾ ਚਾਹੀਦਾ ਹੈ। ਹੋਰ ਜਾਣਕਾਰੀ ਲਈ ਇਸ ਲਿੰਕ 'ਤੇ ਜਾਓ।) ਇਸਦੀ ਜਾਂਚ ਕਰੋ।
ਹੁਣ ਵਾਪਸ ਆਓ ਅਤੇ ਕੋਡ ਚਲਾਓ। ਤੁਹਾਨੂੰ ਕੋਈ ਤਰੁੱਟੀਆਂ ਨਹੀਂ ਮਿਲਣਗੀਆਂ। ਕਿਉਂਕਿ VBA ਇਸ ਵਾਰ ਡਕਸ਼ਨਰੀ ਆਬਜੈਕਟ ਨੂੰ ਪਛਾਣ ਸਕਦਾ ਹੈ।
⧪ ਹੱਲ 2: ਇਸਨੂੰ ਇੱਕ ਖਾਸ ਵਸਤੂ ਦੀ ਬਜਾਏ ਇੱਕ ਸ਼ੁੱਧ ਵਸਤੂ ਵਜੋਂ ਘੋਸ਼ਿਤ ਕਰਨਾ
ਇਸ ਸਮੱਸਿਆ ਨੂੰ ਹੱਲ ਕਰਨ ਦਾ ਇੱਕ ਹੋਰ ਤਰੀਕਾ ਹੈ। ਤੁਸੀਂ ਆਬਜੈਕਟ ਨੂੰ ਇੱਕ ਡਿਕਸ਼ਨਰੀ ਆਬਜੈਕਟ ਦੀ ਬਜਾਏ ਇੱਕ ਸ਼ੁੱਧ ਵਸਤੂ ਵਜੋਂ ਘੋਸ਼ਿਤ ਕਰ ਸਕਦੇ ਹੋ।
ਕੋਡਾਂ ਦੀਆਂ ਹੇਠ ਲਿਖੀਆਂ ਲਾਈਨਾਂ ਵੱਲ ਧਿਆਨ ਦਿਓ।
9172
ਇੱਥੇ ਮੈਂ ਵੇਰੀਏਬਲ MyDictionary ਨੂੰ ਇੱਕ ਸਧਾਰਨ ਵਸਤੂ ਵਜੋਂ ਘੋਸ਼ਿਤ ਕੀਤਾ ਹੈ, ਨਾ ਕਿ ਇੱਕ Dictionary ਹੁਣ ਜੇਕਰ ਤੁਸੀਂ ਇਸ ਕੋਡ ਨੂੰ ਚਲਾਉਂਦੇ ਹੋ, ਤਾਂ ਤੁਹਾਨੂੰ ਕੋਈ ਗਲਤੀ ਨਹੀਂ ਮਿਲੇਗੀ।