ਵਰਡ ਅੱਪਡੇਟ ਅਤੇ VBA ਆਟੋਮੇਸ਼ਨ ਨਾਲ ਚੁਣੌਤੀਆਂ
ਮਾਈਕ੍ਰੋਸਾਫਟ ਵਰਡ ਦੇ ਨਵੀਨਤਮ ਅਪਡੇਟ (ਵਰਜਨ 2410) ਨਾਲ ਕੰਮ ਕਰਨ ਨਾਲ ਇੱਕ ਅਣਕਿਆਸੀ ਸਮੱਸਿਆ ਪੇਸ਼ ਹੋਈ ਹੈ ਜੋ ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਆਪਣੇ ਸਿਰ ਵਲੂੰਧਰ ਰਹੀ ਹੈ। ਸਾਡੇ ਵਿੱਚੋਂ ਜਿਹੜੇ VBA ਨਾਲ ਦਸਤਾਵੇਜ਼ ਬਣਾਉਣ ਨੂੰ ਸਵੈਚਲਿਤ ਕਰਦੇ ਹਨ, ਉਹਨਾਂ ਲਈ HeaderFooter.LinkToPrevious ਸੰਪੱਤੀ ਨੂੰ ਗਲਤ ਕਰਨ ਲਈ ਸ਼ਬਦ ਅਚਾਨਕ ਕਰੈਸ਼ ਹੋ ਰਿਹਾ ਹੈ। ਨਿਰਾਸ਼ਾ ਉਦੋਂ ਵਧਦੀ ਹੈ ਜਦੋਂ ਅਪਵਾਦ ਹੈਂਡਲਿੰਗ ਵੀ ਅਜਿਹਾ ਹੋਣ ਤੋਂ ਨਹੀਂ ਰੋਕ ਸਕਦੀ। 😓
ਇੱਕ ਮੌਕੇ ਵਿੱਚ, ਇੱਕ ਆਲੋਚਨਾਤਮਕ ਰਿਪੋਰਟ 'ਤੇ ਕੰਮ ਕਰ ਰਹੇ ਇੱਕ ਸਹਿਕਰਮੀ ਨੇ ਦੇਖਿਆ ਕਿ ਵਰਡ ਬੰਦ ਹੋ ਗਿਆ ਹੈ ਜਿਵੇਂ ਕਿ ਉਹਨਾਂ ਨੇ ਇੱਕ ਬਰਾਬਰ-ਸੰਖਿਆ ਵਾਲੇ ਪੰਨੇ 'ਤੇ ਸਿਰਲੇਖਾਂ ਨੂੰ ਅਨਲਿੰਕ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕੀਤੀ ਸੀ। ਇਹ ਫੰਕਸ਼ਨ ਸਾਲਾਂ ਤੋਂ ਭਰੋਸੇਯੋਗ ਰਿਹਾ ਹੈ, ਇਸਦੀ ਅਸਫਲਤਾ ਨੂੰ ਖਾਸ ਤੌਰ 'ਤੇ ਵਿਘਨਕਾਰੀ ਬਣਾਉਂਦਾ ਹੈ। ਕੁਝ ਮਸ਼ੀਨਾਂ ਨੂੰ ਅਕਸਰ ਕਰੈਸ਼ ਦਾ ਸਾਹਮਣਾ ਕਰਨਾ ਪੈਂਦਾ ਹੈ, ਜਦੋਂ ਕਿ ਦੂਜੀਆਂ ਸਿਰਫ ਇਸ ਦਾ ਕਦੇ-ਕਦਾਈਂ ਅਨੁਭਵ ਕਰਦੀਆਂ ਹਨ, ਹੋਰ ਉਲਝਣ ਪੈਦਾ ਕਰਦੀਆਂ ਹਨ।
ਦਿਲਚਸਪ ਗੱਲ ਇਹ ਹੈ ਕਿ, ਪਿਛਲੇ ਵਰਡ ਸੰਸਕਰਣ 'ਤੇ ਵਾਪਸ ਜਾਣ ਨਾਲ ਸਮੱਸਿਆ ਹੱਲ ਹੋ ਜਾਂਦੀ ਹੈ। ਹਾਲਾਂਕਿ, ਆਪਣੇ ਵਰਕਫਲੋ ਦੇ ਹਿੱਸੇ ਵਜੋਂ VB.Net COM ਐਡ-ਇਨ ਦੀ ਵਰਤੋਂ ਕਰਨ ਵਾਲੀਆਂ ਟੀਮਾਂ ਲਈ, ਵਾਪਸ ਆਉਣਾ ਹਮੇਸ਼ਾ ਵਿਹਾਰਕ ਨਹੀਂ ਹੁੰਦਾ ਹੈ। ਮੂਲ ਕਾਰਨ ਨੂੰ ਸਮਝਣਾ ਮਹੱਤਵਪੂਰਨ ਹੈ, ਖਾਸ ਤੌਰ 'ਤੇ ਉੱਚ-ਦਾਅ ਵਾਲੇ ਵਾਤਾਵਰਣਾਂ ਵਿੱਚ ਦਸਤਾਵੇਜ਼ਾਂ ਦੇ ਸਹਿਜ ਆਟੋਮੇਸ਼ਨ 'ਤੇ ਨਿਰਭਰ ਕਾਰੋਬਾਰਾਂ ਲਈ। 🔄
ਇਹ ਲੇਖ ਮੁੱਦੇ ਦੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਦੀ ਖੋਜ ਕਰਦਾ ਹੈ, ਸੰਭਾਵੀ ਹੱਲ ਦੀ ਪੜਚੋਲ ਕਰਦਾ ਹੈ, ਅਤੇ ਕਮਿਊਨਿਟੀ ਵਿੱਚ ਹੋਰ ਲੋਕਾਂ ਤੋਂ ਸੂਝ ਸਾਂਝੇ ਕਰਦਾ ਹੈ ਜਿਨ੍ਹਾਂ ਨੂੰ ਸ਼ਾਇਦ ਇਸੇ ਤਰ੍ਹਾਂ ਦੀਆਂ ਚੁਣੌਤੀਆਂ ਦਾ ਸਾਹਮਣਾ ਕਰਨਾ ਪਿਆ ਹੋਵੇ। ਆਓ ਮਿਲ ਕੇ ਇਸ ਸਮੱਸਿਆ ਨੂੰ ਸੁਲਝਾਈਏ ਅਤੇ ਅਗਲੇ ਵਰਡ ਅਪਡੇਟ ਵਿੱਚ ਇੱਕ ਹੱਲ ਦੀ ਉਮੀਦ ਕਰੀਏ!
ਹੁਕਮ | ਵਰਤੋਂ ਦੀ ਉਦਾਹਰਨ |
---|---|
HeaderFooter.LinkToPrevious | ਵਰਡ ਦਸਤਾਵੇਜ਼ ਵਿੱਚ ਭਾਗਾਂ ਵਿੱਚ ਸਿਰਲੇਖਾਂ ਜਾਂ ਫੁੱਟਰਾਂ ਵਿਚਕਾਰ ਲਿੰਕ ਨੂੰ ਤੋੜਨ ਜਾਂ ਸਥਾਪਤ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ। ਉਦਾਹਰਨ ਲਈ, headerFooter.LinkToPrevious = False ਇੱਕ ਸਿਰਲੇਖ ਨੂੰ ਪਿਛਲੇ ਭਾਗ ਤੋਂ ਸਮਗਰੀ ਨੂੰ ਪ੍ਰਾਪਤ ਕਰਨ ਤੋਂ ਰੋਕਦਾ ਹੈ। |
On Error GoTo | VBA ਦੀ ਗਲਤੀ-ਪ੍ਰਬੰਧਨ ਵਿਧੀ ਜੋ ਕਿਸੇ ਗਲਤੀ ਦਾ ਸਾਹਮਣਾ ਕਰਨ 'ਤੇ ਪ੍ਰੋਗਰਾਮ ਨੂੰ ਇੱਕ ਨਿਸ਼ਚਿਤ ਲੇਬਲ ਵੱਲ ਨਿਰਦੇਸ਼ਿਤ ਕਰਦੀ ਹੈ। Word ਕ੍ਰੈਸ਼ਾਂ ਵਰਗੇ ਡੀਬੱਗਿੰਗ ਮੁੱਦਿਆਂ ਲਈ ਜ਼ਰੂਰੀ। |
ActiveDocument | ਵਰਤਮਾਨ ਵਿੱਚ ਓਪਨ ਵਰਡ ਦਸਤਾਵੇਜ਼ ਦਾ ਹਵਾਲਾ ਦਿੰਦਾ ਹੈ, ਜਿਸ ਨਾਲ ਇਸਦੇ ਨਾਮ ਜਾਂ ਮਾਰਗ ਨੂੰ ਦਰਸਾਉਣ ਦੀ ਲੋੜ ਤੋਂ ਬਿਨਾਂ ਇਸ 'ਤੇ ਸਿੱਧੇ ਤੌਰ 'ਤੇ ਕਾਰਵਾਈਆਂ ਕੀਤੀਆਂ ਜਾ ਸਕਦੀਆਂ ਹਨ। |
Section.Headers | ਇੱਕ Word ਦਸਤਾਵੇਜ਼ ਦੇ ਇੱਕ ਖਾਸ ਭਾਗ ਦੇ ਅੰਦਰ ਸਾਰੇ ਸਿਰਲੇਖਾਂ ਤੱਕ ਪਹੁੰਚ ਕਰਦਾ ਹੈ। ਉਦਾਹਰਨ ਲਈ, section.Headers(wdHeaderFooterPrimary) ਇੱਕ ਸੈਕਸ਼ਨ ਦੇ ਪ੍ਰਾਇਮਰੀ ਹੈਡਰ ਨੂੰ ਮੁੜ ਪ੍ਰਾਪਤ ਕਰਦਾ ਹੈ। |
Document.Sections | ਇੱਕ ਵਰਡ ਦਸਤਾਵੇਜ਼ ਵਿੱਚ ਸਾਰੇ ਭਾਗਾਂ ਵਿੱਚ ਦੁਹਰਾਉਂਦਾ ਹੈ, ਜਿਸ ਨਾਲ ਸੈਕਸ਼ਨ ਦੁਆਰਾ ਸਿਰਲੇਖਾਂ ਜਾਂ ਫੁੱਟਰ ਸੈਕਸ਼ਨ ਨੂੰ ਸੋਧਣ ਵਰਗੀਆਂ ਤਬਦੀਲੀਆਂ ਨੂੰ ਲਾਗੂ ਕਰਨਾ ਸੰਭਵ ਹੋ ਜਾਂਦਾ ਹੈ। |
WdHeaderFooterIndex | ਵਰਡ ਇੰਟਰੌਪ ਵਿੱਚ ਇੱਕ ਗਣਨਾ ਨੂੰ ਐਕਸੈਸ ਕੀਤੇ ਜਾ ਰਹੇ ਸਿਰਲੇਖ ਜਾਂ ਫੁੱਟਰ ਦੀ ਕਿਸਮ ਨੂੰ ਦਰਸਾਉਣ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ, ਜਿਵੇਂ ਕਿ ਮੁੱਖ ਸਿਰਲੇਖ ਲਈ wdHeaderFooterPrimary। |
MsgBox | ਉਪਭੋਗਤਾ ਨੂੰ ਇੱਕ ਸੁਨੇਹਾ ਬਾਕਸ ਦਿਖਾਉਂਦਾ ਹੈ, ਜੋ ਅਕਸਰ ਡੀਬੱਗਿੰਗ ਜਾਂ ਫੀਡਬੈਕ ਪ੍ਰਦਾਨ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ। ਉਦਾਹਰਨ ਲਈ, MsgBox "Operation Complete!". |
Console.WriteLine | ਕੰਸੋਲ ਵਿੱਚ ਟੈਕਸਟ ਨੂੰ ਆਉਟਪੁੱਟ ਕਰਨ ਲਈ ਇੱਕ VB.Net ਕਮਾਂਡ। ਸਕ੍ਰਿਪਟ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਦੌਰਾਨ ਲੌਗਿੰਗ ਜਾਣਕਾਰੀ ਜਾਂ ਗਲਤੀਆਂ ਲਈ ਉਪਯੋਗੀ। |
Assert.IsFalse | ਇਹ ਪੁਸ਼ਟੀ ਕਰਨ ਲਈ ਇੱਕ ਯੂਨਿਟ ਟੈਸਟਿੰਗ ਕਮਾਂਡ ਕਿ ਇੱਕ ਸ਼ਰਤ ਗਲਤ ਹੈ। ਉਦਾਹਰਨ ਲਈ, Assert.IsFalse(headerFooter.LinkToPrevious) ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਲਿੰਕ ਸਫਲਤਾਪੂਰਵਕ ਟੁੱਟ ਗਿਆ ਹੈ। |
Application.Quit | ਵਰਡ ਐਪਲੀਕੇਸ਼ਨ ਇੰਸਟੈਂਸ ਨੂੰ ਪ੍ਰੋਗਰਾਮੇਟਿਕ ਤੌਰ 'ਤੇ ਬੰਦ ਕਰਦਾ ਹੈ, ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਮੈਮੋਰੀ ਲੀਕ ਤੋਂ ਬਚਣ ਲਈ ਸਾਰੇ ਸਰੋਤ ਸਹੀ ਢੰਗ ਨਾਲ ਜਾਰੀ ਕੀਤੇ ਗਏ ਹਨ। |
Word VBA ਵਿੱਚ HeaderFooter.LinkToPrevious ਕਰੈਸ਼ਾਂ ਨੂੰ ਹੱਲ ਕਰਨਾ
ਸਕ੍ਰਿਪਟਾਂ ਨੇ ਵਰਡ ਡੌਕੂਮੈਂਟ ਹੈਂਡਲਿੰਗ ਨੂੰ ਸਵੈਚਲਿਤ ਕਰਨ ਵਿੱਚ ਇੱਕ ਨਾਜ਼ੁਕ ਮੁੱਦੇ ਨੂੰ ਹੱਲ ਕੀਤਾ ਹੈ: ਐਪਲੀਕੇਸ਼ਨ ਕਰੈਸ਼ ਕੀਤੇ ਬਿਨਾਂ HeaderFooter.LinkToPrevious ਵਿਸ਼ੇਸ਼ਤਾ ਨੂੰ ਤੋੜਨਾ। VBA ਵਿੱਚ, ਪ੍ਰਕਿਰਿਆ ਵਿੱਚ ਭਾਗਾਂ ਅਤੇ ਸਿਰਲੇਖਾਂ ਨੂੰ ਪਿਛਲੇ ਭਾਗ ਤੋਂ ਅਨਲਿੰਕ ਕਰਨ ਲਈ ਲੂਪ ਕਰਨਾ ਸ਼ਾਮਲ ਹੁੰਦਾ ਹੈ। ਇਹ ਕਾਰਵਾਈ ਇੱਕ ਦਸਤਾਵੇਜ਼ ਵਿੱਚ ਇੱਕਲੇ ਭਾਗਾਂ ਨੂੰ ਬਣਾਉਣ ਲਈ ਜ਼ਰੂਰੀ ਹੈ, ਖਾਸ ਤੌਰ 'ਤੇ ਜਦੋਂ ਕਈ ਫਾਈਲਾਂ ਨੂੰ ਇੱਕ ਤਾਲਮੇਲ ਆਉਟਪੁੱਟ ਵਿੱਚ ਮਿਲਾਇਆ ਜਾਂਦਾ ਹੈ। ਗਲਤੀ ਸੰਭਾਲਣ ਦੀ ਵਿਧੀ (ਗਲਤੀ 'ਤੇ GoTo) ਇਹ ਸੁਨਿਸ਼ਚਿਤ ਕਰਦਾ ਹੈ ਕਿ ਪ੍ਰੋਗਰਾਮ ਪੂਰੀ ਤਰ੍ਹਾਂ ਫੇਲ ਨਹੀਂ ਹੁੰਦਾ ਹੈ ਪਰ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਦੌਰਾਨ ਉਪਭੋਗਤਾ ਨੂੰ ਸਮੱਸਿਆਵਾਂ ਬਾਰੇ ਸੁਚੱਜੇ ਢੰਗ ਨਾਲ ਸੂਚਿਤ ਕਰਦਾ ਹੈ। ਇਹ ਸੈੱਟਅੱਪ ਅਨਮੋਲ ਹੁੰਦਾ ਹੈ ਜਦੋਂ ਅਣਪਛਾਤੇ ਕਰੈਸ਼ਾਂ ਨਾਲ ਨਜਿੱਠਣਾ ਹੁੰਦਾ ਹੈ। ✨
VB.Net ਉਦਾਹਰਨ Word Interop ਲਾਇਬ੍ਰੇਰੀ ਦੀ ਵਰਤੋਂ ਕਰਦੀ ਹੈ, ਜੋ ਕਿ .NET ਵਾਤਾਵਰਣਾਂ ਵਿੱਚ ਵਰਡ ਆਟੋਮੇਸ਼ਨ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰਨ ਵਾਲੇ ਡਿਵੈਲਪਰਾਂ ਲਈ ਇੱਕ ਸ਼ਕਤੀਸ਼ਾਲੀ ਟੂਲ ਹੈ। ਵਰਡ ਡੌਕੂਮੈਂਟ ਨੂੰ ਸਪੱਸ਼ਟ ਤੌਰ 'ਤੇ ਖੋਲ੍ਹਣ, ਭਾਗਾਂ ਰਾਹੀਂ ਦੁਹਰਾਉਣ ਅਤੇ ਸਿਰਲੇਖ/ਪਦਲੇਖ ਲਿੰਕੇਜ ਨੂੰ ਅਸਮਰੱਥ ਕਰਨ ਨਾਲ, ਸਕ੍ਰਿਪਟ VBA ਸੰਸਕਰਣ ਦੇ ਸਮਾਨ ਕਾਰਜਸ਼ੀਲਤਾ ਪ੍ਰਾਪਤ ਕਰਦੀ ਹੈ ਪਰ ਵਾਧੂ ਮਜ਼ਬੂਤੀ ਨਾਲ। ਨਾਲ ਲਾਗਿੰਗ ਕੰਸੋਲ।ਰਾਈਟਲਾਈਨ ਡੀਬੱਗਿੰਗ ਵਿੱਚ ਸਹਾਇਤਾ ਕਰਦਾ ਹੈ, ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਫਲੋ ਨੂੰ ਟਰੈਕ ਕਰਨ ਅਤੇ ਪ੍ਰਕਿਰਿਆ ਵਿੱਚ ਕਿਸੇ ਵੀ ਅਸਫਲਤਾ ਦੀ ਪਛਾਣ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਸਕ੍ਰਿਪਟ ਨੂੰ ਕਾਲ ਕਰਕੇ ਉਚਿਤ ਸਰੋਤ ਪ੍ਰਬੰਧਨ ਨੂੰ ਵੀ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਐਪਲੀਕੇਸ਼ਨ.ਛੱਡੋ ਵਿਧੀ, ਜੋ ਮੈਮੋਰੀ ਲੀਕ ਤੋਂ ਬਚਣ ਲਈ ਵਰਡ ਐਪਲੀਕੇਸ਼ਨ ਨੂੰ ਬੰਦ ਕਰਦੀ ਹੈ।
ਕਾਰਜਕੁਸ਼ਲਤਾ ਨੂੰ ਪ੍ਰਮਾਣਿਤ ਕਰਨ ਲਈ, ਵੱਖ-ਵੱਖ ਵਾਤਾਵਰਣਾਂ ਅਤੇ ਕਿਨਾਰਿਆਂ ਦੇ ਕੇਸਾਂ ਵਿੱਚ ਸਕ੍ਰਿਪਟਾਂ ਦੇ ਕੰਮ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਯੂਨਿਟ ਟੈਸਟ ਪੇਸ਼ ਕੀਤੇ ਗਏ ਸਨ। ਉਦਾਹਰਨ ਲਈ, ਟੈਸਟ ਸਕ੍ਰਿਪਟ ਸਿਰਲੇਖਾਂ ਨੂੰ ਲਿੰਕ ਕਰਨ ਦੇ ਨਾਲ ਇੱਕ ਨਵਾਂ ਵਰਡ ਦਸਤਾਵੇਜ਼ ਬਣਾਉਣ ਦੀ ਨਕਲ ਕਰਦੀ ਹੈ, ਫਿਰ ਉਹਨਾਂ ਨੂੰ ਯੋਜਨਾਬੱਧ ਢੰਗ ਨਾਲ ਅਨਲਿੰਕ ਕਰਦੀ ਹੈ। ਇਹ ਪੁਸ਼ਟੀ ਕਰਦਾ ਹੈ ਕਿ ਵਿਸ਼ੇਸ਼ਤਾ ਗਲਤੀ ਤੋਂ ਬਿਨਾਂ ਕੰਮ ਕਰਦੀ ਹੈ, ਖਾਸ ਤੌਰ 'ਤੇ ਹਾਲ ਹੀ ਦੇ ਅਪਡੇਟਾਂ ਤੋਂ ਬਾਅਦ ਜੋ ਸਮੱਸਿਆਵਾਂ ਦਾ ਕਾਰਨ ਬਣੀਆਂ। ਦਾਅਵੇ, ਜਿਵੇਂ Assert.IsFalse, ਜਾਂਚ ਕਰੋ ਕਿ ਸੰਪਤੀ ਨੂੰ ਸਹੀ ਢੰਗ ਨਾਲ ਸੰਸ਼ੋਧਿਤ ਕੀਤਾ ਗਿਆ ਹੈ, ਡਿਵੈਲਪਰਾਂ ਲਈ ਮਨ ਦੀ ਸ਼ਾਂਤੀ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ ਜਿਨ੍ਹਾਂ ਨੂੰ ਉਤਪਾਦਨ ਦੇ ਵਰਕਫਲੋ ਵਿੱਚ ਲਗਾਤਾਰ ਨਤੀਜਿਆਂ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। 🛠️
ਅਸਲ-ਸੰਸਾਰ ਐਪਲੀਕੇਸ਼ਨ ਲਈ, ਟੈਂਪਲੇਟਾਂ ਤੋਂ ਇਕਰਾਰਨਾਮੇ ਨੂੰ ਇਕੱਠਾ ਕਰਨ ਵਾਲੀ ਇੱਕ ਕਾਨੂੰਨੀ ਟੀਮ ਦੀ ਕਲਪਨਾ ਕਰੋ। ਹਰੇਕ ਭਾਗ ਲਈ ਇੱਕ ਵਿਲੱਖਣ ਸਿਰਲੇਖ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ, ਪਰ ਉਹਨਾਂ ਨੂੰ ਲਿੰਕ ਕਰਨ ਨਾਲ ਅਣਇੱਛਤ ਕੈਰੀਓਵਰ ਹੋ ਸਕਦਾ ਹੈ। ਇਹਨਾਂ ਸਕ੍ਰਿਪਟਾਂ ਦੇ ਨਾਲ, ਟੀਮ ਹਰ ਸੈਕਸ਼ਨ ਦੀ ਇਕਸਾਰਤਾ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਂਦੇ ਹੋਏ, ਪ੍ਰੋਗਰਾਮੇਟਿਕ ਤੌਰ 'ਤੇ ਸਿਰਲੇਖਾਂ ਨੂੰ ਅਨਲਿੰਕ ਕਰ ਸਕਦੀ ਹੈ। ਇਸੇ ਤਰ੍ਹਾਂ, ਵਿਲੀਨ ਕੀਤੇ ਡੇਟਾਸੇਟਾਂ ਤੋਂ ਰਿਪੋਰਟਾਂ ਤਿਆਰ ਕਰਨ ਵੇਲੇ, ਇਹ ਪਹੁੰਚ ਸਹਿਜ ਫਾਰਮੈਟਿੰਗ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ। ਜਦੋਂ ਕਿ Word ਦੇ ਅੱਪਡੇਟ ਕਦੇ-ਕਦਾਈਂ ਆਟੋਮੇਸ਼ਨ ਪ੍ਰਕਿਰਿਆਵਾਂ ਵਿੱਚ ਵਿਘਨ ਪਾਉਂਦੇ ਹਨ, ਇਹਨਾਂ ਸਕ੍ਰਿਪਟਾਂ ਅਤੇ ਟੈਸਟਾਂ ਦਾ ਹੋਣਾ ਲਚਕਤਾ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ। ਮਾਡਯੂਲਰ ਅਤੇ ਮੁੜ ਵਰਤੋਂ ਯੋਗ ਕੋਡ ਦਾ ਲਾਭ ਲੈ ਕੇ, ਡਿਵੈਲਪਰ ਸੌਫਟਵੇਅਰ ਅਪਡੇਟਾਂ ਦੇ ਪ੍ਰਭਾਵ ਨੂੰ ਘੱਟ ਕਰਦੇ ਹੋਏ ਕਾਰਜਕੁਸ਼ਲਤਾ ਨੂੰ ਕਾਇਮ ਰੱਖ ਸਕਦੇ ਹਨ। 🚀
VBA ਵਿੱਚ HeaderFooter.LinkToPrevious ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਸਮੇਂ ਵਰਡ ਕ੍ਰੈਸ਼ ਨੂੰ ਸੰਭਾਲਣਾ
VBA ਪਹੁੰਚ: ਵਰਡ ਹੈਡਰ ਓਪਰੇਸ਼ਨਾਂ ਨੂੰ ਆਟੋਮੈਟਿਕ ਕਰਨ ਲਈ ਮਾਡਿਊਲਰ ਅਤੇ ਗਲਤੀ-ਪ੍ਰਬੰਧਿਤ ਹੱਲ ਬਣਾਓ
' VBA Script: Disable HeaderFooter LinkToPrevious with Exception Handling
Sub BreakHeaderFooterLink()
On Error GoTo ErrorHandler ' Enable error handling
Dim doc As Document
Dim section As Section
Dim headerFooter As HeaderFooter
' Open a document or use the active one
Set doc = ActiveDocument
For Each section In doc.Sections
For Each headerFooter In section.Headers
headerFooter.LinkToPrevious = False ' Break link
Next
Next
MsgBox "Header links successfully broken!", vbInformation
Exit Sub
ErrorHandler:
MsgBox "Error encountered: " & Err.Description, vbCritical
End Sub
ਵਰਡ ਵਿੱਚ ਹੈਡਰਫੁੱਟਰ ਲਿੰਕਸ ਦੇ ਪ੍ਰਬੰਧਨ ਲਈ VB.Net ਦੀ ਵਰਤੋਂ ਕਰਨਾ
VB.Net: Word Interop ਲਾਇਬ੍ਰੇਰੀ ਦਾ ਲਾਭ ਉਠਾਉਣ ਵਾਲਾ ਇੱਕ ਮਜ਼ਬੂਤ ਬੈਕਐਂਡ ਹੱਲ
Imports Microsoft.Office.Interop.Word
Module WordHeaderFooterManager
Sub Main()
Try
Dim wordApp As New Application()
Dim doc As Document = wordApp.Documents.Open("C:\Path\To\Your\Document.docx")
For Each section As Section In doc.Sections
For Each headerFooter As HeaderFooter In section.Headers
headerFooter.LinkToPrevious = False ' Break the link
Next
Next
doc.Save()
doc.Close()
wordApp.Quit()
Catch ex As Exception
Console.WriteLine($"Error: {ex.Message}")
End Try
End Sub
End Module
ਭਰੋਸੇਯੋਗਤਾ ਲਈ ਹੱਲਾਂ ਦੀ ਜਾਂਚ ਕਰਨ ਵਾਲੀ ਯੂਨਿਟ
ਟੈਸਟਿੰਗ: ਯਕੀਨੀ ਬਣਾਓ ਕਿ ਸਕ੍ਰਿਪਟਾਂ ਵੱਖ-ਵੱਖ ਵਾਤਾਵਰਣਾਂ ਵਿੱਚ ਉਮੀਦ ਅਨੁਸਾਰ ਵਿਹਾਰ ਕਰਦੀਆਂ ਹਨ
Imports NUnit.Framework
Public Class WordAutomationTests
<Test>
Public Sub TestBreakHeaderFooterLink()
Dim wordApp As New Application()
Dim doc As Document = wordApp.Documents.Add()
doc.Sections.Add()
doc.Sections(1).Headers(WdHeaderFooterIndex.wdHeaderFooterPrimary).LinkToPrevious = True
For Each section As Section In doc.Sections
For Each headerFooter As HeaderFooter In section.Headers
headerFooter.LinkToPrevious = False
Next
Next
Assert.IsFalse(doc.Sections(1).Headers(WdHeaderFooterIndex.wdHeaderFooterPrimary).LinkToPrevious)
doc.Close(False)
wordApp.Quit()
End Sub
End Class
ਵਰਡ ਆਟੋਮੇਸ਼ਨ ਵਿੱਚ VBA ਸੀਮਾਵਾਂ ਨੂੰ ਸਮਝਣਾ
ਵਰਡ ਦੇ ਨਾਲ VBA ਦੀ ਵਰਤੋਂ ਕਰਨ ਦੇ ਅਕਸਰ ਨਜ਼ਰਅੰਦਾਜ਼ ਕੀਤੇ ਜਾਣ ਵਾਲੇ ਪਹਿਲੂਆਂ ਵਿੱਚੋਂ ਇੱਕ ਇਹ ਹੈ ਕਿ ਕਿਵੇਂ ਅੱਪਡੇਟ ਆਟੋਮੇਸ਼ਨ ਵਰਕਫਲੋ ਨੂੰ ਅਸਥਿਰ ਕਰ ਸਕਦੇ ਹਨ। ਨਾਲ ਮੁੱਦਾ HeaderFooter.LinkToPrevious ਵਰਡ ਸੰਸਕਰਣ 2410 ਵਿੱਚ ਸੰਪੱਤੀ ਕੁਝ ਬਿਲਟ-ਇਨ ਤਰੀਕਿਆਂ ਦੀ ਕਮਜ਼ੋਰੀ ਦੀ ਇੱਕ ਸਪੱਸ਼ਟ ਯਾਦ ਦਿਵਾਉਂਦੀ ਹੈ ਜਦੋਂ ਨਵੇਂ ਸੌਫਟਵੇਅਰ ਅਪਡੇਟਾਂ ਨੂੰ ਰੋਲ ਆਊਟ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਇਹ ਅਸਥਿਰਤਾ ਪੈਦਾ ਹੁੰਦੀ ਹੈ ਕਿਉਂਕਿ VBA ਕੋਡ ਅੰਡਰਲਾਈੰਗ ਐਪਲੀਕੇਸ਼ਨ ਵਿਹਾਰ 'ਤੇ ਨਿਰਭਰ ਕਰਦਾ ਹੈ, ਅਤੇ ਐਪ ਵਿੱਚ ਤਬਦੀਲੀਆਂ ਅਚਾਨਕ ਸਕ੍ਰਿਪਟਾਂ ਨੂੰ ਤੋੜ ਸਕਦੀਆਂ ਹਨ। ਇਹ ਸਥਿਤੀਆਂ ਵਧੇਰੇ ਆਮ ਹੁੰਦੀਆਂ ਹਨ ਜਦੋਂ ਕਈ ਭਾਗਾਂ ਅਤੇ ਸਿਰਲੇਖਾਂ ਵਾਲੇ ਗੁੰਝਲਦਾਰ ਦਸਤਾਵੇਜ਼ਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰਦੇ ਹਨ, ਸਫਲਤਾ ਲਈ ਗਲਤੀ ਨੂੰ ਸੰਭਾਲਣ ਅਤੇ ਟੈਸਟਿੰਗ ਨੂੰ ਮਹੱਤਵਪੂਰਨ ਬਣਾਉਂਦੇ ਹਨ। 🛠️
ਇਸ ਸਮੱਸਿਆ ਦਾ ਇੱਕ ਹੋਰ ਪਹਿਲੂ ਮਸ਼ੀਨਾਂ ਵਿਚਕਾਰ ਅਨੁਕੂਲਤਾ ਹੈ। ਜਿਵੇਂ ਕਿ ਨੋਟ ਕੀਤਾ ਗਿਆ ਹੈ, ਕਰੈਸ਼ ਅਸੰਗਤ ਰੂਪ ਵਿੱਚ ਪ੍ਰਗਟ ਹੁੰਦਾ ਹੈ: ਇੱਕ ਮਸ਼ੀਨ 'ਤੇ, ਇਹ ਅਕਸਰ ਵਾਪਰਦਾ ਹੈ, ਜਦੋਂ ਕਿ ਦੂਜੀਆਂ 'ਤੇ, ਇਹ ਛਿੱਟੇ ਜਾਂ ਮੌਜੂਦ ਨਹੀਂ ਹੈ। ਇਹ ਅੰਤਰ ਅਕਸਰ ਹਾਰਡਵੇਅਰ ਆਰਕੀਟੈਕਚਰ (32-ਬਿੱਟ ਬਨਾਮ 64-ਬਿੱਟ) ਜਾਂ ਵਾਤਾਵਰਣ ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਸੂਖਮ ਅੰਤਰ ਨਾਲ ਜੁੜੇ ਹੁੰਦੇ ਹਨ। ਅਜਿਹੇ ਮੁੱਦੇ ਵੱਖ-ਵੱਖ ਪਲੇਟਫਾਰਮਾਂ ਅਤੇ ਸੰਰਚਨਾਵਾਂ ਵਿੱਚ ਤੁਹਾਡੀਆਂ VBA ਸਕ੍ਰਿਪਟਾਂ ਦੀ ਜਾਂਚ ਦੇ ਮਹੱਤਵ ਨੂੰ ਰੇਖਾਂਕਿਤ ਕਰਦੇ ਹਨ ਤਾਂ ਜੋ ਉਹਨਾਂ ਨੂੰ ਵਿਆਪਕ ਤੌਰ 'ਤੇ ਤੈਨਾਤ ਕਰਦੇ ਸਮੇਂ ਹੈਰਾਨੀ ਤੋਂ ਬਚਿਆ ਜਾ ਸਕੇ। ਲੌਗਿੰਗ ਅਤੇ ਟਰੇਸਿੰਗ ਕਮਾਂਡਾਂ ਇਹਨਾਂ ਦ੍ਰਿਸ਼ਾਂ ਵਿੱਚ ਹੋਰ ਵੀ ਮਹੱਤਵਪੂਰਨ ਬਣ ਜਾਂਦੀਆਂ ਹਨ। 🚀
ਅੰਤ ਵਿੱਚ, ਜਦੋਂ ਕਿ ਵਰਡ ਨੂੰ ਪਿਛਲੇ ਸੰਸਕਰਣ ਵਿੱਚ ਵਾਪਸ ਲਿਆਉਣਾ ਤੁਰੰਤ ਮੁੱਦੇ ਨੂੰ ਹੱਲ ਕਰ ਸਕਦਾ ਹੈ, ਇਹ ਸੰਸਥਾਵਾਂ ਲਈ ਹਮੇਸ਼ਾਂ ਵਿਹਾਰਕ ਨਹੀਂ ਹੁੰਦਾ ਹੈ। ਉਦਾਹਰਨ ਲਈ, ਇੱਕ ਕਾਰੋਬਾਰ ਦੀ ਕਲਪਨਾ ਕਰੋ ਜੋ ਵਰਕਫਲੋ ਵਿੱਚ ਵਰਕਫਲੋ ਨੂੰ ਏਕੀਕ੍ਰਿਤ ਕਰਦਾ ਹੈ ਜਿਸ ਵਿੱਚ VB.Net COM ਐਡ-ਇਨਸ ਸ਼ਾਮਲ ਹੁੰਦੇ ਹਨ ਤਾਂ ਜੋ ਰਿਪੋਰਟਾਂ ਤਿਆਰ ਕੀਤੀਆਂ ਜਾ ਸਕਣ ਜਾਂ ਗਤੀਸ਼ੀਲ ਤੌਰ 'ਤੇ ਇਕਰਾਰਨਾਮੇ ਨੂੰ ਕੰਪਾਇਲ ਕੀਤਾ ਜਾ ਸਕੇ। ਡਾਊਨਗ੍ਰੇਡਿੰਗ ਹੋਰ ਪ੍ਰਕਿਰਿਆਵਾਂ ਵਿੱਚ ਵਿਘਨ ਪਾ ਸਕਦੀ ਹੈ, ਇੱਕ ਅਧਿਕਾਰਤ ਹੱਲ ਦੀ ਉਡੀਕ ਕਰਦੇ ਹੋਏ ਇੱਕ ਮਜ਼ਬੂਤ ਵਰਕਅਰਾਉਂਡ ਨੂੰ ਲਾਗੂ ਕਰਨਾ ਜ਼ਰੂਰੀ ਬਣਾਉਂਦਾ ਹੈ। ਸਹੀ ਅਪਵਾਦ ਹੈਂਡਲਿੰਗ ਦੇ ਨਾਲ ਮਾਡਿਊਲਰ ਸਕ੍ਰਿਪਟ ਡਿਜ਼ਾਈਨ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਣਾ ਓਪਰੇਸ਼ਨਾਂ ਨੂੰ ਬਰਕਰਾਰ ਰੱਖਣ ਵਿੱਚ ਮਦਦ ਕਰ ਸਕਦਾ ਹੈ ਭਾਵੇਂ ਵਰਡ ਅੱਪਡੇਟ ਆਮ ਕਾਰਜਸ਼ੀਲਤਾ ਵਿੱਚ ਵਿਘਨ ਪਾਉਂਦੇ ਹਨ। ✨
VBA ਅਤੇ Word ਕ੍ਰੈਸ਼ਾਂ ਬਾਰੇ ਅਕਸਰ ਪੁੱਛੇ ਜਾਂਦੇ ਸਵਾਲ
- ਕੀ ਹੈ HeaderFooter.LinkToPrevious ਲਈ ਵਰਤਿਆ?
- ਇਹ ਨਿਯੰਤਰਣ ਕਰਦਾ ਹੈ ਕਿ ਕੀ ਵਰਡ ਦਸਤਾਵੇਜ਼ ਵਿੱਚ ਇੱਕ ਸਿਰਲੇਖ ਜਾਂ ਫੁੱਟਰ ਪਿਛਲੇ ਭਾਗ ਦੇ ਸਿਰਲੇਖ ਜਾਂ ਫੁੱਟਰ ਨਾਲ ਜੁੜਿਆ ਹੋਇਆ ਹੈ। ਇਹ ਮਲਟੀ-ਸੈਕਸ਼ਨ ਦਸਤਾਵੇਜ਼ਾਂ ਵਿੱਚ ਸੁਤੰਤਰ ਹੈਡਰ/ਫੁੱਟਰ ਬਣਾਉਣ ਲਈ ਜ਼ਰੂਰੀ ਹੈ।
- ਕਰੈਸ਼ ਸਿਰਫ਼ ਕੁਝ ਮਸ਼ੀਨਾਂ 'ਤੇ ਹੀ ਕਿਉਂ ਹੁੰਦਾ ਹੈ?
- ਇਹ ਹਾਰਡਵੇਅਰ (ਜਿਵੇਂ ਕਿ, 32-ਬਿੱਟ ਬਨਾਮ 64-ਬਿੱਟ ਸਿਸਟਮ), ਸੌਫਟਵੇਅਰ ਸੰਸਕਰਣਾਂ, ਜਾਂ ਇੱਥੋਂ ਤੱਕ ਕਿ ਵਾਤਾਵਰਨ ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਅੰਤਰ ਦੇ ਕਾਰਨ ਹੋ ਸਕਦਾ ਹੈ ਜੋ ਇਹ ਪ੍ਰਭਾਵਤ ਕਰਦੇ ਹਨ ਕਿ Word ਕਮਾਂਡ ਨੂੰ ਕਿਵੇਂ ਪ੍ਰਕਿਰਿਆ ਕਰਦਾ ਹੈ।
- ਮੈਂ ਆਪਣੀਆਂ ਸਕ੍ਰਿਪਟਾਂ ਵਿੱਚ ਮੁੱਦੇ ਨੂੰ ਕਿਵੇਂ ਡੀਬੱਗ ਕਰ ਸਕਦਾ ਹਾਂ?
- ਐਰਰ ਹੈਂਡਲਿੰਗ ਕਮਾਂਡਾਂ ਦੀ ਵਰਤੋਂ ਕਰੋ ਜਿਵੇਂ ਕਿ On Error GoTo VBA ਵਿੱਚ ਜਾਂ ਇਸ ਨਾਲ ਮਜ਼ਬੂਤ ਲੌਗਿੰਗ ਲਾਗੂ ਕਰੋ Console.WriteLine ਅਸਫਲਤਾਵਾਂ ਦੇ ਮੂਲ ਕਾਰਨ ਦਾ ਪਤਾ ਲਗਾਉਣ ਲਈ VB.Net ਵਿੱਚ.
- ਮੁੱਦੇ ਲਈ ਇੱਕ ਤੇਜ਼ ਹੱਲ ਕੀ ਹੈ?
- ਪੁਰਾਣੇ ਵਰਡ ਸੰਸਕਰਣ 'ਤੇ ਵਾਪਸ ਜਾਣਾ ਸਭ ਤੋਂ ਤੇਜ਼ ਫਿਕਸ ਹੈ, ਪਰ ਮੁੜ-ਕੋਸ਼ਿਸ਼ ਲੂਪਸ ਨੂੰ ਲਾਗੂ ਕਰਨਾ HeaderFooter.LinkToPrevious ਕਰੈਸ਼ ਦੇ ਖਤਰੇ ਨੂੰ ਘਟਾ ਸਕਦਾ ਹੈ।
- ਕੀ ਸਮੱਸਿਆ ਦਾ ਕੋਈ ਸਥਾਈ ਹੱਲ ਹੈ?
- ਬਦਕਿਸਮਤੀ ਨਾਲ, ਇੱਕ ਸਥਾਈ ਹੱਲ ਮਾਈਕਰੋਸਾਫਟ ਦੁਆਰਾ ਬੱਗ ਨੂੰ ਹੱਲ ਕਰਨ ਲਈ ਇੱਕ ਅਪਡੇਟ ਜਾਰੀ ਕਰਨ 'ਤੇ ਨਿਰਭਰ ਕਰਦਾ ਹੈ। ਇਸ ਦੌਰਾਨ, ਢਾਂਚਾਗਤ ਟੈਸਟਿੰਗ ਅਤੇ ਮਾਡਯੂਲਰ ਸਕ੍ਰਿਪਟਾਂ ਇਸਦੇ ਪ੍ਰਭਾਵਾਂ ਨੂੰ ਘਟਾਉਣ ਵਿੱਚ ਮਦਦ ਕਰ ਸਕਦੀਆਂ ਹਨ।
ਸ਼ਬਦ ਕ੍ਰੈਸ਼ਾਂ ਨੂੰ ਹੱਲ ਕਰਨ ਬਾਰੇ ਅੰਤਿਮ ਵਿਚਾਰ
ਨਾਲ ਜੁੜੇ ਕਰੈਸ਼ਾਂ ਨੂੰ ਸੰਬੋਧਨ ਕਰਨਾ HeaderFooter.LinkToPrevious ਵਰਡ ਵਿੱਚ ਵਰਕਅਰਾਉਂਡ ਅਤੇ ਮਜ਼ਬੂਤ ਟੈਸਟਿੰਗ ਦੇ ਮਿਸ਼ਰਣ ਦੀ ਲੋੜ ਹੈ। ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਅਚਾਨਕ ਅੱਪਡੇਟ ਜਾਂ ਵਾਤਾਵਰਨ-ਵਿਸ਼ੇਸ਼ ਅੰਤਰਾਂ ਕਾਰਨ ਹੋਣ ਵਾਲੀਆਂ ਸਮੱਸਿਆਵਾਂ ਨੂੰ ਘੱਟ ਕਰਨ ਲਈ ਮਾਡਿਊਲਰ, ਚੰਗੀ ਤਰ੍ਹਾਂ ਜਾਂਚੀਆਂ ਗਈਆਂ ਸਕ੍ਰਿਪਟਾਂ ਨੂੰ ਤਰਜੀਹ ਦੇਣੀ ਚਾਹੀਦੀ ਹੈ। ✨
ਮਾਈਕ੍ਰੋਸਾੱਫਟ ਤੋਂ ਅਧਿਕਾਰਤ ਫਿਕਸ ਦੀ ਉਡੀਕ ਕਰਦੇ ਹੋਏ, ਲੌਗਸ ਨੂੰ ਕਾਇਮ ਰੱਖਣਾ, ਮੁੜ ਕੋਸ਼ਿਸ਼ ਲੂਪਸ ਦਾ ਲਾਭ ਲੈਣਾ, ਅਤੇ ਕਰਾਸ-ਪਲੇਟਫਾਰਮ ਟੈਸਟਿੰਗ ਉਤਪਾਦਕਤਾ ਨੂੰ ਕਾਇਮ ਰੱਖਣ ਵਿੱਚ ਮਦਦ ਕਰ ਸਕਦੀ ਹੈ। ਇਹ ਕਿਰਿਆਸ਼ੀਲ ਉਪਾਅ ਨਿਰਵਿਘਨ ਵਰਕਫਲੋ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਂਦੇ ਹਨ, ਇੱਥੋਂ ਤੱਕ ਕਿ ਦਸਤਾਵੇਜ਼ ਸੰਕਲਨ ਵਰਗੇ ਉੱਚ-ਸਟੇਕ ਆਟੋਮੇਸ਼ਨ ਕਾਰਜਾਂ ਵਿੱਚ ਵੀ। 💡
ਸਰੋਤ ਅਤੇ ਹਵਾਲੇ
- ਕ੍ਰੈਸ਼ ਅਤੇ ਇਸਦੀ ਮੌਜੂਦਗੀ ਬਾਰੇ ਵੇਰਵੇ ਇੱਕ ਡਿਵੈਲਪਰ ਫੋਰਮ ਵਿੱਚ ਸਾਂਝੀਆਂ ਕੀਤੀਆਂ ਗਈਆਂ ਸੂਝਾਂ 'ਤੇ ਆਧਾਰਿਤ ਸਨ। 'ਤੇ ਚਰਚਾ ਤੱਕ ਪਹੁੰਚ ਕਰੋ ਸਟੈਕ ਓਵਰਫਲੋ .
- ਬਾਰੇ ਤਕਨੀਕੀ ਵੇਰਵੇ HeaderFooter.LinkToPrevious ਵਰਡ ਆਟੋਮੇਸ਼ਨ ਵਿੱਚ ਸੰਪੱਤੀ ਅਤੇ ਇਸਦੀ ਐਪਲੀਕੇਸ਼ਨ ਨੂੰ ਅਧਿਕਾਰਤ ਮਾਈਕਰੋਸਾਫਟ ਦਸਤਾਵੇਜ਼ ਵਿੱਚ ਪਾਇਆ ਜਾ ਸਕਦਾ ਹੈ: Microsoft VBA ਹਵਾਲਾ .
- VBA ਤਰੁੱਟੀਆਂ ਦੇ ਪ੍ਰਬੰਧਨ ਅਤੇ ਡੀਬੱਗਿੰਗ ਬਾਰੇ ਜਾਣਕਾਰੀ ਵਿਹਾਰਕ ਉਦਾਹਰਣਾਂ ਅਤੇ ਵਧੀਆ ਅਭਿਆਸਾਂ ਤੋਂ ਪ੍ਰਾਪਤ ਕੀਤੀ ਗਈ ਸੀ ਐਕਸਲ ਮੈਕਰੋ ਮਹਾਰਤ .