VBA ਵਿੱਚ ਵੇਰੀਏਬਲ ਅਤੇ ਸਥਿਰਾਂਕ

VBA ਵਿੱਚ, ਜਿਵੇਂ ਕਿ ਕਿਸੇ ਵੀ ਹੋਰ ਪ੍ਰੋਗਰਾਮਿੰਗ ਭਾਸ਼ਾ ਵਿੱਚ, ਵੇਰੀਏਬਲ ਅਤੇ ਸਥਿਰਾਂਕ ਕਿਸੇ ਵੀ ਮੁੱਲ ਨੂੰ ਸਟੋਰ ਕਰਨ ਲਈ ਵਰਤੇ ਜਾਂਦੇ ਹਨ। ਜਿਵੇਂ ਕਿ ਨਾਮ ਤੋਂ ਭਾਵ ਹੈ, ਵੇਰੀਏਬਲ ਬਦਲ ਸਕਦੇ ਹਨ, ਜਦੋਂ ਕਿ ਸਥਿਰਾਂਕ ਸਥਿਰ ਮੁੱਲਾਂ ਨੂੰ ਸਟੋਰ ਕਰਦੇ ਹਨ।

ਉਦਾਹਰਨ ਲਈ, ਇੱਕ ਸਥਿਰ Pi 3,14159265 ਮੁੱਲ ਨੂੰ ਸਟੋਰ ਕਰਦਾ ਹੈ... ਪ੍ਰੋਗਰਾਮ ਦੇ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਦੌਰਾਨ "Pi" ਨੰਬਰ ਨਹੀਂ ਬਦਲੇਗਾ, ਪਰ ਅਜਿਹੇ ਮੁੱਲ ਨੂੰ ਸਥਿਰ ਵਜੋਂ ਸਟੋਰ ਕਰਨਾ ਅਜੇ ਵੀ ਵਧੇਰੇ ਸੁਵਿਧਾਜਨਕ ਹੈ।

ਉਸੇ ਸਮੇਂ, ਅਸੀਂ ਵੇਰੀਏਬਲ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹਾਂ sVAT_Rate ਖਰੀਦੇ ਗਏ ਸਮਾਨ 'ਤੇ ਵੈਟ ਦਰ ਨੂੰ ਸਟੋਰ ਕਰਨ ਲਈ। ਵੇਰੀਏਬਲ ਮੁੱਲ sVAT_Rate ਖਰੀਦੇ ਗਏ ਉਤਪਾਦ ਦੇ ਆਧਾਰ 'ਤੇ ਵੱਖ-ਵੱਖ ਹੋ ਸਕਦੇ ਹਨ।

ਡਾਟਾ ਕਿਸਮ

ਸਾਰੇ ਵੇਰੀਏਬਲ ਅਤੇ ਸਥਿਰਾਂਕ ਇੱਕ ਖਾਸ ਡਾਟਾ ਕਿਸਮ ਦੇ ਹੁੰਦੇ ਹਨ। ਹੇਠਾਂ ਦਿੱਤੀ ਸਾਰਣੀ VBA ਵਿੱਚ ਵਰਤੇ ਜਾਣ ਵਾਲੇ ਡੇਟਾ ਕਿਸਮਾਂ ਨੂੰ ਇੱਕ ਵਰਣਨ ਅਤੇ ਸੰਭਾਵਿਤ ਮੁੱਲਾਂ ਦੀ ਰੇਂਜ ਦੇ ਨਾਲ ਸੂਚੀਬੱਧ ਕਰਦੀ ਹੈ:

ਡਾਟਾ ਕਿਸਮ ਆਕਾਰਵੇਰਵਾਮੁੱਲਾਂ ਦੀ ਸੀਮਾ
ਬਾਈਟ1 ਬਾਈਟਸਸਕਾਰਾਤਮਕ ਪੂਰਨ ਅੰਕ; ਅਕਸਰ ਬਾਈਨਰੀ ਡੇਟਾ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ0 ਤੱਕ 255 ਤੱਕ
ਬੂਲੀਅਨ2 ਬਾਈਟਸਜਾਂ ਤਾਂ ਸਹੀ ਜਾਂ ਗਲਤ ਹੋ ਸਕਦਾ ਹੈਸਹੀ ਜਾਂ ਗਲਤ
ਪੂਰਨ ਅੰਕ2 ਬਾਈਟਸਸੰਪੂਰਨ ਸੰਖਿਆਵਾਂ (ਕੋਈ ਅੰਸ਼ਕ ਭਾਗ ਨਹੀਂ)-32 ਤੋਂ +768 ਤੱਕ
ਲੰਮੇ4 ਬਾਈਟਸਵੱਡੇ ਪੂਰਨ ਅੰਕ (ਕੋਈ ਅੰਸ਼ਕ ਭਾਗ ਨਹੀਂ)от -2 147 483 648 до +2 147 483 647
ਸਿੰਗਲ4 ਬਾਈਟਸਸਿੰਗਲ ਸ਼ੁੱਧਤਾ ਫਲੋਟਿੰਗ ਪੁਆਇੰਟ ਨੰਬਰ-3.4e38 ਤੋਂ +3.4e38 ਤੱਕ
ਡਬਲ8 ਬਾਈਟਸਡਬਲ ਸ਼ੁੱਧਤਾ ਫਲੋਟਿੰਗ ਪੁਆਇੰਟ ਨੰਬਰ-1.8e308 ਤੋਂ +1.8e308 ਤੱਕ
ਕਰੰਸੀ8 ਬਾਈਟਸਫਲੋਟਿੰਗ ਪੁਆਇੰਟ ਨੰਬਰ, ਦਸ਼ਮਲਵ ਸਥਾਨਾਂ ਦੀ ਇੱਕ ਨਿਸ਼ਚਿਤ ਸੰਖਿਆ ਦੇ ਨਾਲот -922 337 203 685 477.5808 до +922 337 203 685 477.5807
ਮਿਤੀ8 ਬਾਈਟਸਮਿਤੀ ਅਤੇ ਸਮਾਂ - ਕਿਸਮ ਦੇ ਡੇਟਾ ਨੂੰ ਇੱਕ ਫਲੋਟਿੰਗ ਪੁਆਇੰਟ ਨੰਬਰ ਦੁਆਰਾ ਦਰਸਾਇਆ ਜਾਂਦਾ ਹੈ। ਇਸ ਸੰਖਿਆ ਦਾ ਪੂਰਨ ਅੰਕ ਮਿਤੀ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ, ਅਤੇ ਅੰਸ਼ਿਕ ਭਾਗ ਸਮੇਂ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ।1 ਜਨਵਰੀ, 100 ਤੋਂ 31 ਦਸੰਬਰ, 9999 ਤੱਕ
ਇਕਾਈ4 ਬਾਈਟਸਵਸਤੂ ਦਾ ਹਵਾਲਾਕੋਈ ਵੀ ਵਸਤੂ ਦਾ ਹਵਾਲਾ
ਸਤਰਬਦਲ ਰਿਹਾ ਹੈਅੱਖਰ ਸੈੱਟ. ਸਤਰ ਦੀ ਕਿਸਮ ਸਥਿਰ ਜਾਂ ਪਰਿਵਰਤਨਸ਼ੀਲ ਲੰਬਾਈ ਦੀ ਹੋ ਸਕਦੀ ਹੈ। ਵੇਰੀਏਬਲ ਲੰਬਾਈ ਦੇ ਨਾਲ ਆਮ ਤੌਰ 'ਤੇ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈਸਥਿਰ ਲੰਬਾਈ - ਲਗਭਗ 65 ਅੱਖਰਾਂ ਤੱਕ। ਵੇਰੀਏਬਲ ਲੰਬਾਈ - ਲਗਭਗ 500 ਬਿਲੀਅਨ ਅੱਖਰਾਂ ਤੱਕ
variantਬਦਲ ਰਿਹਾ ਹੈਇੱਕ ਮਿਤੀ, ਇੱਕ ਫਲੋਟ, ਜਾਂ ਇੱਕ ਅੱਖਰ ਸਤਰ ਸ਼ਾਮਲ ਹੋ ਸਕਦਾ ਹੈ। ਇਸ ਕਿਸਮ ਦੀ ਵਰਤੋਂ ਉਹਨਾਂ ਮਾਮਲਿਆਂ ਵਿੱਚ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਜਿੱਥੇ ਇਹ ਪਹਿਲਾਂ ਤੋਂ ਪਤਾ ਨਹੀਂ ਹੁੰਦਾ ਕਿ ਕਿਸ ਕਿਸਮ ਦਾ ਡੇਟਾ ਦਾਖਲ ਕੀਤਾ ਜਾਵੇਗਾ।ਨੰਬਰ - ਡਬਲ, ਸਤਰ - ਸਤਰ

ਸਪੱਸ਼ਟ ਤੌਰ 'ਤੇ, ਉੱਪਰ ਦਿੱਤੀ ਸਾਰਣੀ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਅਤੇ ਸਹੀ ਡਾਟਾ ਕਿਸਮ ਦੀ ਚੋਣ ਕਰਕੇ, ਤੁਸੀਂ ਮੈਮੋਰੀ ਨੂੰ ਵਧੇਰੇ ਆਰਥਿਕ ਤੌਰ 'ਤੇ ਵਰਤ ਸਕਦੇ ਹੋ (ਉਦਾਹਰਣ ਲਈ, ਡੇਟਾ ਕਿਸਮ ਦੀ ਚੋਣ ਕਰੋ ਪੂਰਨ ਅੰਕ ਇਸਦੀ ਬਜਾਏ ਲੰਮੇ or ਸਿੰਗਲ ਇਸਦੀ ਬਜਾਏ ਡਬਲ). ਹਾਲਾਂਕਿ, ਵਧੇਰੇ ਸੰਖੇਪ ਡੇਟਾ ਕਿਸਮਾਂ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਸਮੇਂ, ਤੁਹਾਨੂੰ ਸਾਵਧਾਨ ਰਹਿਣ ਦੀ ਲੋੜ ਹੈ ਕਿ ਤੁਹਾਡਾ ਕੋਡ ਉਹਨਾਂ ਵਿੱਚ ਅਸਪਸ਼ਟ ਤੌਰ 'ਤੇ ਵੱਡੇ ਮੁੱਲਾਂ ਨੂੰ ਫਿੱਟ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਨਾ ਕਰੇ।

ਵੇਰੀਏਬਲ ਅਤੇ ਸਥਿਰਾਂਕ ਘੋਸ਼ਿਤ ਕਰਨਾ

ਅਨੁਵਾਦਕ ਦਾ ਨੋਟ: VBA ਵਿੱਚ ਵੇਰੀਏਬਲਾਂ ਬਾਰੇ ਗੱਲ ਕਰਦੇ ਹੋਏ, ਇਹ ਇੱਕ ਹੋਰ ਬਹੁਤ ਮਹੱਤਵਪੂਰਨ ਨੁਕਤੇ ਦਾ ਜ਼ਿਕਰ ਕਰਨ ਯੋਗ ਹੈ. ਜੇਕਰ ਅਸੀਂ ਇੱਕ ਵੇਰੀਏਬਲ ਘੋਸ਼ਿਤ ਕਰਦੇ ਹਾਂ ਪਰ ਇਸਦੇ ਲਈ ਕੋਈ ਮੁੱਲ ਨਿਰਧਾਰਤ ਨਹੀਂ ਕਰਦੇ, ਤਾਂ ਇਸਨੂੰ ਇੱਕ ਡਿਫੌਲਟ ਮੁੱਲ ਨਾਲ ਸ਼ੁਰੂ ਕੀਤਾ ਜਾਂਦਾ ਹੈ:

• ਟੈਕਸਟ ਸਟ੍ਰਿੰਗਸ ਨੂੰ ਖਾਲੀ ਸਤਰ ਨਾਲ ਸ਼ੁਰੂ ਕੀਤਾ ਜਾਂਦਾ ਹੈ;

• ਨੰਬਰ — ਮੁੱਲ 0;

• ਵੇਰੀਏਬਲ ਟਾਈਪ ਕਰੋ ਬੂਲੀਅਨ - ਝੂਠਾ;

• ਤਾਰੀਖਾਂ - 30 ਦਸੰਬਰ, 1899।

ਇੱਕ ਵੇਰੀਏਬਲ ਜਾਂ ਸਥਿਰ ਦੀ ਵਰਤੋਂ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ, ਇਸਨੂੰ ਘੋਸ਼ਿਤ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਅਜਿਹਾ ਕਰਨ ਲਈ, ਮੈਕਰੋ ਵਿੱਚ ਕੋਡ ਦੀ ਹੇਠ ਦਿੱਤੀ ਸਧਾਰਨ ਲਾਈਨ ਜੋੜੋ:

Dim Имя_Переменной As Тип_Данных

ਕੋਡ ਦੀ ਉਪਰੋਕਤ ਲਾਈਨ ਵਿੱਚ ਵੇਰੀਏਬਲ_ਨਾਮ ਵੇਰੀਏਬਲ ਦਾ ਨਾਮ ਹੈ ਜੋ ਕੋਡ ਵਿੱਚ ਵਰਤਿਆ ਜਾਵੇਗਾ, ਅਤੇ ਡਾਟਾ_ਟਾਈਪ ਇਸ ਲੇਖ ਵਿੱਚ ਥੋੜਾ ਪਹਿਲਾਂ ਦਿੱਤਾ ਗਿਆ ਸਾਰਣੀ ਵਿੱਚੋਂ ਇੱਕ ਡਾਟਾ ਕਿਸਮ ਹੈ। ਉਦਾਹਰਣ ਲਈ:

ਡਿਮ sVAT_ਰੇਟ ਸਿੰਗਲ ਡਿਮ ਅਤੇ ਪੂਰਨ ਅੰਕ ਵਜੋਂ

ਸਥਿਰਾਂਕਾਂ ਨੂੰ ਉਸੇ ਤਰ੍ਹਾਂ ਘੋਸ਼ਿਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਪਰ ਜਦੋਂ ਸਥਿਰਾਂਕ ਘੋਸ਼ਿਤ ਕਰਦੇ ਹਨ, ਤਾਂ ਉਹਨਾਂ ਦਾ ਮੁੱਲ ਤੁਰੰਤ ਦਰਸਾਇਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਉਦਾਹਰਨ ਲਈ, ਇਸ ਤਰ੍ਹਾਂ:

Const iMaxCount = 5000 Const iMaxScore = 100

ਐਕਸਲ ਵਿੱਚ ਵੇਰੀਏਬਲ ਘੋਸ਼ਿਤ ਕਰਨਾ ਜ਼ਰੂਰੀ ਨਹੀਂ ਹੈ। ਮੂਲ ਰੂਪ ਵਿੱਚ, ਐਕਸਲ ਵਿੱਚ ਸਾਰੇ ਦਾਖਲ ਕੀਤੇ ਪਰ ਘੋਸ਼ਿਤ ਨਾ ਕੀਤੇ ਵੇਰੀਏਬਲ ਦੀ ਕਿਸਮ ਹੋਵੇਗੀ variant ਅਤੇ ਸੰਖਿਆਤਮਕ ਅਤੇ ਟੈਕਸਟ ਮੁੱਲ ਦੋਵਾਂ ਨੂੰ ਸਵੀਕਾਰ ਕਰਨ ਦੇ ਯੋਗ ਹੋਵੇਗਾ।

ਇਸ ਤਰ੍ਹਾਂ, ਪ੍ਰੋਗਰਾਮਰ ਕਿਸੇ ਵੀ ਸਮੇਂ ਨਵੇਂ ਵੇਰੀਏਬਲ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦਾ ਹੈ (ਭਾਵੇਂ ਇਹ ਘੋਸ਼ਿਤ ਨਾ ਕੀਤਾ ਗਿਆ ਹੋਵੇ), ਅਤੇ ਐਕਸਲ ਇਸ ਨੂੰ ਕਿਸਮ ਦੇ ਵੇਰੀਏਬਲ ਦੇ ਰੂਪ ਵਿੱਚ ਮੰਨੇਗਾ। variant. ਹਾਲਾਂਕਿ, ਇਸ ਨੂੰ ਨਾ ਕਰਨ ਦੇ ਕਈ ਕਾਰਨ ਹਨ:

  1. ਮੈਮੋਰੀ ਦੀ ਵਰਤੋਂ ਅਤੇ ਗਣਨਾਤਮਕ ਗਤੀ। ਜੇਕਰ ਤੁਸੀਂ ਡੇਟਾ ਕਿਸਮ ਦੇ ਸੰਕੇਤ ਦੇ ਨਾਲ ਇੱਕ ਵੇਰੀਏਬਲ ਦੀ ਘੋਸ਼ਣਾ ਨਹੀਂ ਕਰਦੇ, ਤਾਂ ਮੂਲ ਰੂਪ ਵਿੱਚ ਇਸ ਨੂੰ ਕਿਸਮ 'ਤੇ ਸੈੱਟ ਕੀਤਾ ਜਾਵੇਗਾ variant. ਇਹ ਡਾਟਾ ਕਿਸਮ ਹੋਰ ਡਾਟਾ ਕਿਸਮਾਂ ਨਾਲੋਂ ਜ਼ਿਆਦਾ ਮੈਮੋਰੀ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ। ਕੁਝ ਵਾਧੂ ਬਾਈਟ ਪ੍ਰਤੀ ਵੇਰੀਏਬਲ ਸ਼ਾਇਦ ਜ਼ਿਆਦਾ ਨਾ ਲੱਗੇ, ਪਰ ਅਭਿਆਸ ਵਿੱਚ, ਪ੍ਰੋਗਰਾਮਾਂ ਵਿੱਚ ਹਜ਼ਾਰਾਂ ਵੇਰੀਏਬਲ ਹੋ ਸਕਦੇ ਹਨ (ਖ਼ਾਸਕਰ ਜਦੋਂ ਐਰੇ ਨਾਲ ਕੰਮ ਕਰਦੇ ਹਨ)। ਇਸ ਲਈ, ਵੇਰੀਏਬਲ ਦੁਆਰਾ ਵਰਤੀ ਗਈ ਵਾਧੂ ਮੈਮੋਰੀ ਜਿਵੇਂ variant, ਕਿਸਮ ਦੇ ਵੇਰੀਏਬਲ ਦੇ ਮੁਕਾਬਲੇ ਪੂਰਨ ਅੰਕ or ਸਿੰਗਲ, ਇੱਕ ਮਹੱਤਵਪੂਰਨ ਰਕਮ ਤੱਕ ਜੋੜ ਸਕਦਾ ਹੈ. ਇਸ ਤੋਂ ਇਲਾਵਾ, ਕਿਸਮ ਦੇ ਵੇਰੀਏਬਲ ਦੇ ਨਾਲ ਓਪਰੇਸ਼ਨ variant ਦੂਜੀਆਂ ਕਿਸਮਾਂ ਦੇ ਵੇਰੀਏਬਲਾਂ ਦੇ ਮੁਕਾਬਲੇ, ਕ੍ਰਮਵਾਰ, ਕਿਸਮ ਦੇ ਇੱਕ ਵਾਧੂ ਹਜ਼ਾਰ ਵੇਰੀਏਬਲਾਂ ਦੇ ਮੁਕਾਬਲੇ ਬਹੁਤ ਜ਼ਿਆਦਾ ਹੌਲੀ-ਹੌਲੀ ਚਲਾਇਆ ਜਾਂਦਾ ਹੈ variant ਗਣਨਾ ਨੂੰ ਕਾਫ਼ੀ ਹੌਲੀ ਕਰ ਸਕਦਾ ਹੈ।
  2. ਵੇਰੀਏਬਲ ਨਾਮਾਂ ਵਿੱਚ ਟਾਈਪੋਜ਼ ਦੀ ਰੋਕਥਾਮ। ਜੇਕਰ ਸਾਰੇ ਵੇਰੀਏਬਲ ਘੋਸ਼ਿਤ ਕੀਤੇ ਜਾਂਦੇ ਹਨ, ਤਾਂ VBA ਸਟੇਟਮੈਂਟ - ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ ਵਿਕਲਪ ਸਪਸ਼ਟ (ਅਸੀਂ ਇਸ ਬਾਰੇ ਬਾਅਦ ਵਿੱਚ ਗੱਲ ਕਰਾਂਗੇ) ਸਾਰੇ ਅਣਐਲਾਨੀ ਵੇਰੀਏਬਲਾਂ ਦੀ ਪਛਾਣ ਕਰਨ ਲਈ। ਇਹ ਗਲਤ ਤਰੀਕੇ ਨਾਲ ਲਿਖੇ ਵੇਰੀਏਬਲ ਨਾਮ ਦੇ ਨਤੀਜੇ ਵਜੋਂ ਪ੍ਰੋਗਰਾਮ ਵਿੱਚ ਇੱਕ ਗਲਤੀ ਦੀ ਦਿੱਖ ਨੂੰ ਖਤਮ ਕਰਦਾ ਹੈ। ਉਦਾਹਰਨ ਲਈ, ਨਾਮ ਦੇ ਇੱਕ ਵੇਰੀਏਬਲ ਦੀ ਵਰਤੋਂ ਕਰਨਾ sVAT_Rate, ਤੁਸੀਂ ਇੱਕ ਟਾਈਪੋ ਕਰ ਸਕਦੇ ਹੋ ਅਤੇ, ਇਸ ਵੇਰੀਏਬਲ ਨੂੰ ਇੱਕ ਮੁੱਲ ਨਿਰਧਾਰਤ ਕਰਦੇ ਹੋਏ, ਲਿਖੋ: “VATRate = 0,175”। ਇਹ ਉਮੀਦ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਕਿ ਹੁਣ ਤੋਂ, ਵੇਰੀਏਬਲ sVAT_Rate ਮੁੱਲ 0,175 ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ - ਪਰ ਬੇਸ਼ਕ ਇਹ ਨਹੀਂ ਹੈ। ਜੇਕਰ ਸਾਰੇ ਵਰਤੇ ਗਏ ਵੇਰੀਏਬਲਾਂ ਦੀ ਲਾਜ਼ਮੀ ਘੋਸ਼ਣਾ ਦਾ ਮੋਡ ਸਮਰੱਥ ਹੈ, ਤਾਂ VBA ਕੰਪਾਈਲਰ ਤੁਰੰਤ ਇੱਕ ਗਲਤੀ ਦਰਸਾਏਗਾ, ਕਿਉਂਕਿ ਇਹ ਵੇਰੀਏਬਲ ਨਹੀਂ ਲੱਭੇਗਾ। VATRate ਐਲਾਨ ਕੀਤੇ ਗਏ ਹਨ।
  3. ਉਹਨਾਂ ਮੁੱਲਾਂ ਨੂੰ ਉਜਾਗਰ ਕਰਨਾ ਜੋ ਵੇਰੀਏਬਲ ਦੀ ਘੋਸ਼ਿਤ ਕਿਸਮ ਨਾਲ ਮੇਲ ਨਹੀਂ ਖਾਂਦੇ। ਜੇਕਰ ਤੁਸੀਂ ਕਿਸੇ ਖਾਸ ਕਿਸਮ ਦੇ ਵੇਰੀਏਬਲ ਦੀ ਘੋਸ਼ਣਾ ਕਰਦੇ ਹੋ ਅਤੇ ਇਸ ਨੂੰ ਇੱਕ ਵੱਖਰੀ ਕਿਸਮ ਦਾ ਡੇਟਾ ਨਿਰਧਾਰਤ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦੇ ਹੋ, ਤਾਂ ਤੁਹਾਨੂੰ ਇੱਕ ਗਲਤੀ ਮਿਲੇਗੀ, ਜੋ, ਜੇਕਰ ਸਹੀ ਨਾ ਕੀਤੀ ਗਈ, ਤਾਂ ਪ੍ਰੋਗਰਾਮ ਕਰੈਸ਼ ਹੋ ਸਕਦਾ ਹੈ। ਪਹਿਲੀ ਨਜ਼ਰ 'ਤੇ, ਇਹ ਵੇਰੀਏਬਲਾਂ ਦੀ ਘੋਸ਼ਣਾ ਨਾ ਕਰਨ ਦਾ ਇੱਕ ਚੰਗਾ ਕਾਰਨ ਜਾਪਦਾ ਹੈ, ਪਰ ਅਸਲ ਵਿੱਚ, ਇਸ ਤੋਂ ਪਹਿਲਾਂ ਕਿ ਇਹ ਪਤਾ ਚਲਦਾ ਹੈ ਕਿ ਇੱਕ ਵੇਰੀਏਬਲ ਨੂੰ ਗਲਤ ਡੇਟਾ ਪ੍ਰਾਪਤ ਹੋਇਆ ਸੀ ਜੋ ਇਸਨੂੰ ਪ੍ਰਾਪਤ ਕਰਨਾ ਚਾਹੀਦਾ ਸੀ - ਜਿੰਨਾ ਬਿਹਤਰ! ਨਹੀਂ ਤਾਂ, ਜੇਕਰ ਪ੍ਰੋਗਰਾਮ ਚੱਲਦਾ ਰਹਿੰਦਾ ਹੈ, ਤਾਂ ਨਤੀਜੇ ਗਲਤ ਅਤੇ ਅਚਾਨਕ ਹੋ ਸਕਦੇ ਹਨ, ਅਤੇ ਗਲਤੀਆਂ ਦਾ ਕਾਰਨ ਲੱਭਣਾ ਹੋਰ ਵੀ ਮੁਸ਼ਕਲ ਹੋ ਜਾਵੇਗਾ। ਇਹ ਵੀ ਸੰਭਵ ਹੈ ਕਿ ਮੈਕਰੋ "ਸਫਲਤਾ ਨਾਲ" ਚਲਾਇਆ ਜਾਵੇਗਾ। ਨਤੀਜੇ ਵਜੋਂ, ਗਲਤੀ ਦਾ ਧਿਆਨ ਨਹੀਂ ਦਿੱਤਾ ਜਾਵੇਗਾ ਅਤੇ ਗਲਤ ਡੇਟਾ ਦੇ ਨਾਲ ਕੰਮ ਜਾਰੀ ਰਹੇਗਾ!

ਇਸ ਸਬੰਧ ਵਿੱਚ, ਇੱਕ ਗਲਤ ਡੇਟਾ ਕਿਸਮ ਦਾ ਪਤਾ ਲਗਾਉਣਾ ਅਤੇ ਕੋਡ ਵਿੱਚ ਅਜਿਹੀਆਂ ਗਲਤੀਆਂ ਨੂੰ ਜਲਦੀ ਤੋਂ ਜਲਦੀ ਠੀਕ ਕਰਨਾ ਫਾਇਦੇਮੰਦ ਹੈ। ਇਹਨਾਂ ਕਾਰਨਾਂ ਕਰਕੇ, ਇਹ ਸਿਫਾਰਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਕਿ ਤੁਸੀਂ VBA ਮੈਕਰੋ ਲਿਖਣ ਵੇਲੇ ਸਾਰੇ ਵੇਰੀਏਬਲ ਘੋਸ਼ਿਤ ਕਰੋ।

ਵਿਕਲਪ ਸਪਸ਼ਟ

ਓਪਰੇਟਰ ਵਿਕਲਪ ਸਪਸ਼ਟ VBA ਕੋਡ ਵਿੱਚ ਵਰਤੇ ਜਾਣ ਵਾਲੇ ਸਾਰੇ ਵੇਰੀਏਬਲਾਂ ਨੂੰ ਘੋਸ਼ਿਤ ਕਰਨ ਦਾ ਕਾਰਨ ਬਣਦਾ ਹੈ, ਅਤੇ ਕੰਪਾਈਲੇਸ਼ਨ ਦੌਰਾਨ (ਕੋਡ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਸ਼ੁਰੂ ਹੋਣ ਤੋਂ ਪਹਿਲਾਂ) ਸਾਰੇ ਅਣ-ਘੋਸ਼ਿਤ ਵੇਰੀਏਬਲਾਂ ਨੂੰ ਤਰੁੱਟੀਆਂ ਵਜੋਂ ਫਲੈਗ ਕਰਦਾ ਹੈ। ਇਸ ਆਪਰੇਟਰ ਨੂੰ ਲਾਗੂ ਕਰਨਾ ਮੁਸ਼ਕਲ ਨਹੀਂ ਹੈ - VBA ਫਾਈਲ ਦੇ ਬਿਲਕੁਲ ਸਿਖਰ 'ਤੇ ਇਹ ਲਾਈਨ ਲਿਖੋ:

Option Explicit

ਜੇਕਰ ਤੁਸੀਂ ਹਮੇਸ਼ਾ ਪਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ ਵਿਕਲਪ ਸਪਸ਼ਟ ਬਣਾਏ ਗਏ ਹਰੇਕ ਨਵੇਂ VBA ਮੋਡੀਊਲ ਦੇ ਸਿਖਰ 'ਤੇ, ਇਹ ਆਪਣੇ ਆਪ ਹੀ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ। ਅਜਿਹਾ ਕਰਨ ਲਈ, ਤੁਹਾਨੂੰ ਵਿਕਲਪ ਨੂੰ ਸਮਰੱਥ ਕਰਨ ਦੀ ਲੋੜ ਹੈ ਵੇਰੀਏਬਲ ਘੋਸ਼ਣਾ ਦੀ ਲੋੜ ਹੈ VBA ਸੰਪਾਦਕ ਸੈਟਿੰਗਾਂ ਵਿੱਚ।

ਇਹ ਇਸ ਤਰ੍ਹਾਂ ਕੀਤਾ ਜਾਂਦਾ ਹੈ:

  • ਵਿਜ਼ੂਅਲ ਬੇਸਿਕ ਐਡੀਟਰ ਮੇਨੂ ਤੋਂ, ਕਲਿੱਕ ਕਰੋ ਸੰਦ > ਚੋਣ
  • ਦਿਖਾਈ ਦੇਣ ਵਾਲੇ ਡਾਇਲਾਗ ਵਿੱਚ, ਟੈਬ ਖੋਲ੍ਹੋ ਸੰਪਾਦਕ
  • ਬਾਕਸ ਨੂੰ ਚੈੱਕ ਕਰੋ ਵੇਰੀਏਬਲ ਘੋਸ਼ਣਾ ਦੀ ਲੋੜ ਹੈ ਅਤੇ ਦਬਾਓ OK

ਜਦੋਂ ਯੋਗ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਸਤਰ ਵਿਕਲਪ ਸਪਸ਼ਟ ਬਣਾਏ ਗਏ ਹਰੇਕ ਨਵੇਂ ਮੋਡੀਊਲ ਦੇ ਸ਼ੁਰੂ ਵਿੱਚ ਆਪਣੇ ਆਪ ਹੀ ਪਾ ਦਿੱਤਾ ਜਾਵੇਗਾ।

ਵੇਰੀਏਬਲ ਅਤੇ ਸਥਿਰਾਂਕ ਦਾ ਸਕੋਪ

ਹਰੇਕ ਘੋਸ਼ਿਤ ਵੇਰੀਏਬਲ ਜਾਂ ਸਥਿਰਾਂਕ ਦਾ ਆਪਣਾ ਸੀਮਤ ਸਕੋਪ ਹੁੰਦਾ ਹੈ, ਯਾਨੀ ਪ੍ਰੋਗਰਾਮ ਦਾ ਇੱਕ ਸੀਮਤ ਹਿੱਸਾ ਜਿਸ ਵਿੱਚ ਇਹ ਵੇਰੀਏਬਲ ਮੌਜੂਦ ਹੈ। ਦਾਇਰਾ ਇਸ ਗੱਲ 'ਤੇ ਨਿਰਭਰ ਕਰਦਾ ਹੈ ਕਿ ਵੇਰੀਏਬਲ ਜਾਂ ਸਥਿਰਾਂਕ ਦੀ ਘੋਸ਼ਣਾ ਕਿੱਥੇ ਕੀਤੀ ਗਈ ਸੀ। ਉਦਾਹਰਨ ਲਈ, ਵੇਰੀਏਬਲ ਨੂੰ ਲਓ sVAT_Rate, ਜੋ ਕਿ ਫੰਕਸ਼ਨ ਵਿੱਚ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ ਕੁੱਲ_ ਲਾਗਤ. ਹੇਠਾਂ ਦਿੱਤੀ ਸਾਰਣੀ ਵੇਰੀਏਬਲ ਸਕੋਪਿੰਗ ਲਈ ਦੋ ਵਿਕਲਪਾਂ ਦੀ ਚਰਚਾ ਕਰਦੀ ਹੈ sVAT_Rateਮੋਡੀਊਲ ਵਿੱਚ ਦੋ ਵੱਖ-ਵੱਖ ਸਥਿਤੀਆਂ ਵਿੱਚ ਘੋਸ਼ਿਤ:

ਵਿਕਲਪ ਸਪਸ਼ਟ ਡਿਮ sVAT_Rate as ਸਿੰਗਲ ਫੰਕਸ਼ਨ Total_Cost() as Double... End Function
ਜੇਕਰ ਵੇਰੀਏਬਲ sVAT_Rate ਮੋਡੀਊਲ ਦੇ ਸ਼ੁਰੂ ਵਿੱਚ ਘੋਸ਼ਿਤ ਕੀਤਾ ਗਿਆ ਹੈ, ਫਿਰ ਇਸ ਵੇਰੀਏਬਲ ਦਾ ਸਕੋਪ ਪੂਰੇ ਮੋਡੀਊਲ (ਭਾਵ ਵੇਰੀਏਬਲ) ਹੋਵੇਗਾ sVAT_Rate ਇਸ ਮੋਡੀਊਲ ਦੀਆਂ ਸਾਰੀਆਂ ਪ੍ਰਕਿਰਿਆਵਾਂ ਦੁਆਰਾ ਮਾਨਤਾ ਪ੍ਰਾਪਤ ਹੋਵੇਗੀ)।

ਇਸ ਲਈ, ਜੇਕਰ ਫੰਕਸ਼ਨ ਵਿੱਚ ਕੁੱਲ_ ਲਾਗਤ ਵੇਰੀਏਬਲ sVAT_Rate ਨੂੰ ਕੁਝ ਮੁੱਲ ਨਿਰਧਾਰਤ ਕੀਤਾ ਜਾਵੇਗਾ, ਫਿਰ ਉਸੇ ਮੋਡੀਊਲ ਦੇ ਅੰਦਰ ਚਲਾਇਆ ਗਿਆ ਅਗਲਾ ਫੰਕਸ਼ਨ ਵੇਰੀਏਬਲ ਦੀ ਵਰਤੋਂ ਕਰੇਗਾ sVAT_Rate ਉਸੇ ਅਰਥ ਦੇ ਨਾਲ.

ਹਾਲਾਂਕਿ, ਜੇਕਰ ਕਿਸੇ ਹੋਰ ਮੋਡੀਊਲ ਵਿੱਚ ਸਥਿਤ ਕੁਝ ਫੰਕਸ਼ਨ ਨੂੰ ਕਾਲ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਇਸਦੇ ਲਈ ਵੇਰੀਏਬਲ sVAT_Rate ਜਾਣਿਆ ਨਹੀਂ ਜਾਵੇਗਾ।

ਵਿਕਲਪ ਸਪਸ਼ਟ ਫੰਕਸ਼ਨ Total_Cost() ਡਬਲ ਡਿਮ sVAT_Rate As ਸਿੰਗਲ... End Function
ਜੇਕਰ ਵੇਰੀਏਬਲ sVAT_Rate ਸਮਾਗਮ ਦੀ ਸ਼ੁਰੂਆਤ ਵਿੱਚ ਐਲਾਨ ਕੀਤਾ ਗਿਆ ਕੁੱਲ_ ਲਾਗਤ, ਤਾਂ ਇਸਦਾ ਦਾਇਰਾ ਸਿਰਫ ਇਸ ਫੰਕਸ਼ਨ ਤੱਕ ਸੀਮਿਤ ਹੋਵੇਗਾ (ਭਾਵ ਫੰਕਸ਼ਨ ਦੇ ਅੰਦਰ ਕੁੱਲ_ ਲਾਗਤ, ਤੁਸੀਂ ਵੇਰੀਏਬਲ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹੋ sVAT_Rate, ਪਰ ਬਾਹਰ ਨਹੀਂ)।

ਵਰਤਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦੇ ਸਮੇਂ sVAT_Rate ਇੱਕ ਹੋਰ ਵਿਧੀ ਵਿੱਚ, VBA ਕੰਪਾਈਲਰ ਇੱਕ ਗਲਤੀ ਦੀ ਰਿਪੋਰਟ ਕਰੇਗਾ ਕਿਉਂਕਿ ਇਸ ਵੇਰੀਏਬਲ ਨੂੰ ਫੰਕਸ਼ਨ ਤੋਂ ਬਾਹਰ ਘੋਸ਼ਿਤ ਨਹੀਂ ਕੀਤਾ ਗਿਆ ਸੀ ਕੁੱਲ_ ਲਾਗਤ (ਬਸ਼ਰਤੇ ਕਿ ਆਪਰੇਟਰ ਵਰਤਿਆ ਗਿਆ ਹੋਵੇ ਵਿਕਲਪ ਸਪਸ਼ਟ).

ਉੱਪਰ ਦਿਖਾਈ ਗਈ ਉਦਾਹਰਨ ਵਿੱਚ, ਵੇਰੀਏਬਲ ਨੂੰ ਕੀਵਰਡ ਦੇ ਨਾਲ ਮੋਡੀਊਲ ਪੱਧਰ 'ਤੇ ਘੋਸ਼ਿਤ ਕੀਤਾ ਗਿਆ ਹੈ ਮੱਧਮ. ਹਾਲਾਂਕਿ, ਇਹ ਜ਼ਰੂਰੀ ਹੋ ਸਕਦਾ ਹੈ ਕਿ ਘੋਸ਼ਿਤ ਵੇਰੀਏਬਲ ਹੋਰ ਮੋਡੀਊਲਾਂ ਵਿੱਚ ਵਰਤੇ ਜਾ ਸਕਣ। ਅਜਿਹੇ ਮਾਮਲਿਆਂ ਵਿੱਚ, ਇੱਕ ਕੀਵਰਡ ਦੀ ਬਜਾਏ ਇੱਕ ਵੇਰੀਏਬਲ ਘੋਸ਼ਿਤ ਕਰਨ ਲਈ ਮੱਧਮ ਕੀਵਰਡ ਦੀ ਵਰਤੋਂ ਕਰਨੀ ਚਾਹੀਦੀ ਹੈ ਪਬਲਿਕ.

ਤਰੀਕੇ ਨਾਲ, ਕੀਵਰਡ ਦੀ ਬਜਾਏ, ਮੋਡੀਊਲ ਪੱਧਰ 'ਤੇ ਇੱਕ ਵੇਰੀਏਬਲ ਘੋਸ਼ਿਤ ਕਰਨ ਲਈ ਮੱਧਮ ਕੀਵਰਡ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ ਪ੍ਰਾਈਵੇਟ, ਜੋ ਦਰਸਾਉਂਦਾ ਹੈ ਕਿ ਇਹ ਵੇਰੀਏਬਲ ਸਿਰਫ ਮੌਜੂਦਾ ਮੋਡੀਊਲ ਵਿੱਚ ਵਰਤਣ ਲਈ ਹੈ।

ਤੁਸੀਂ ਸਥਿਰਾਂਕ ਘੋਸ਼ਿਤ ਕਰਨ ਲਈ ਕੀਵਰਡਸ ਦੀ ਵਰਤੋਂ ਵੀ ਕਰ ਸਕਦੇ ਹੋ। ਪਬਲਿਕ и ਪ੍ਰਾਈਵੇਟ, ਪਰ ਕੀਵਰਡ ਦੀ ਬਜਾਏ ਨਹੀਂ ਕਾਂਸਟ, ਇਸ ਦੇ ਨਾਲ.

ਹੇਠਾਂ ਦਿੱਤੀਆਂ ਉਦਾਹਰਣਾਂ ਕੀਵਰਡਸ ਦੀ ਵਰਤੋਂ ਨੂੰ ਦਰਸਾਉਂਦੀਆਂ ਹਨ ਪਬਲਿਕ и ਪ੍ਰਾਈਵੇਟ ਵੇਰੀਏਬਲ ਅਤੇ ਸਥਿਰਾਂਕ 'ਤੇ ਲਾਗੂ ਹੁੰਦਾ ਹੈ।

ਵਿਕਲਪ ਸਪੱਸ਼ਟ ਜਨਤਕ sVAT_Rate As ਸਿੰਗਲ ਪਬਲਿਕ ਕੰਸਟ iMax_Count = 5000 ...    
ਇਸ ਉਦਾਹਰਨ ਵਿੱਚ, ਕੀਵਰਡ ਪਬਲਿਕ ਇੱਕ ਵੇਰੀਏਬਲ ਘੋਸ਼ਿਤ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ sVAT_Rate ਅਤੇ ਸਥਿਰ iMax_Count. ਇਸ ਤਰੀਕੇ ਨਾਲ ਘੋਸ਼ਿਤ ਕੀਤੇ ਗਏ ਤੱਤਾਂ ਦਾ ਦਾਇਰਾ ਪੂਰਾ ਮੌਜੂਦਾ ਪ੍ਰੋਜੈਕਟ ਹੋਵੇਗਾ।

ਇਸ ਦਾ ਮਤਲਬ ਹੈ ਕਿ sVAT_Rate и iMax_Count ਕਿਸੇ ਵੀ ਪ੍ਰੋਜੈਕਟ ਮੋਡੀਊਲ ਵਿੱਚ ਉਪਲਬਧ ਹੋਵੇਗਾ।

ਵਿਕਲਪ ਸਪੱਸ਼ਟ ਪ੍ਰਾਈਵੇਟ sVAT_Rate As ਸਿੰਗਲ ਪ੍ਰਾਈਵੇਟ ਕੰਸਟ iMax_Count = 5000 ...    
ਇਸ ਉਦਾਹਰਨ ਵਿੱਚ, ਇੱਕ ਵੇਰੀਏਬਲ ਘੋਸ਼ਿਤ ਕਰਨ ਲਈ sVAT_Rate ਅਤੇ ਸਥਿਰ iMax_Count ਕੀਵਰਡ ਵਰਤਿਆ ਪ੍ਰਾਈਵੇਟ. ਇਹਨਾਂ ਤੱਤਾਂ ਦਾ ਦਾਇਰਾ ਮੌਜੂਦਾ ਮੋਡੀਊਲ ਹੈ।

ਇਸ ਦਾ ਮਤਲਬ ਹੈ ਕਿ sVAT_Rate и iMax_Count ਮੌਜੂਦਾ ਮੋਡੀਊਲ ਦੀਆਂ ਸਾਰੀਆਂ ਪ੍ਰਕਿਰਿਆਵਾਂ ਵਿੱਚ ਉਪਲਬਧ ਹੋਵੇਗਾ, ਪਰ ਦੂਜੇ ਮੋਡੀਊਲ ਵਿੱਚ ਪ੍ਰਕਿਰਿਆਵਾਂ ਲਈ ਉਪਲਬਧ ਨਹੀਂ ਹੋਵੇਗਾ।

ਕੋਈ ਜਵਾਬ ਛੱਡਣਾ