وظيفة VBA OFFSET | كيفية استخدام خاصية إزاحة Excel VBA (مثال)

وظيفة Excel VBA OFFSET

تُستخدم وظيفة VBA Offset لنقل مرجع أو الإشارة إليه يتخطى عددًا معينًا من الصفوف والأعمدة ، وتكون الوسائط الخاصة بهذه الوظيفة في VBA هي نفسها الوسائط الموجودة في ورقة العمل.

على سبيل المثال ، افترض أن لديك مجموعة من البيانات مثل الموجودة أدناه.

الآن من الخلية A1 ، تريد نقل 4 خلايا لأسفل وتريد تحديد تلك الخلية الخامسة ، أي الخلية A5.

وبالمثل ، إذا كنت تريد الانتقال لأسفل من صفوف الخلية 2 A1 والانتقال إلى عمودين إلى اليمين وحدد تلك الخلية ، أي خلية C2.

في هذه الحالات ، تكون وظيفة OFFSET مفيدة للغاية. خاصة في VBA OFFSET وظيفة هي مجرد ظاهرة.

يتم استخدام OFFSET مع Range Object في Excel VBA

في VBA ، لا يمكننا إدخال كلمة OFFSET مباشرة. نحتاج إلى استخدام كائن VBA RANGE أولاً ومن كائن النطاق هذا ، يمكننا استخدام خاصية OFFSET.

في نطاق excel ليس سوى خلية أو نطاق من الخلية. نظرًا لأن OFFSET تشير إلى الخلايا ، فنحن بحاجة إلى استخدام الكائن RANGE أولاً ثم يمكننا استخدام طريقة OFFSET.

بناء جملة OFFSET في VBA Excel

  • إزاحة الصف: عدد الصفوف التي تريد إزاحتها من الخلية المحددة. الخلية المحددة هنا هي A1 ie Range (“A1”).
  • إزاحة العمود: عدد الأعمدة التي تريد إزاحتها من الخلية المحددة. الخلية المحددة هنا هي A1 ie Range (“A1”).

أمثلة

يمكنك تنزيل نموذج VBA OFFSET هنا - قالب VBA OFFSET

مثال 1

النظر في البيانات أدناه على سبيل المثال العرض التوضيحي.

الآن أريد تحديد الخلية A6 من الخلية A1. ابدأ الماكرو والخلية المرجعية باستخدام كائن النطاق.

رمز:

 Sub Offset_Example1 () Range ("A1"). offset (End Sub 

الآن أريد تحديد الخلية A6 ، أي أريد أن أفعل 5 خلايا. لذا أدخل 5 كمعامل لـ Row Offset.

رمز:

 Sub Offset_Example1 () Range ("A1"). offset (5 End Sub 

نظرًا لأنني أقوم بالاختيار في نفس العمود ، فقد تركت جزء العمود. أغلق القوس وضع نقطة (.) واكتب الطريقة "تحديد".

رمز:

 Sub Offset_Example1 () Range ("A1"). Offset (5). حدد End Sub 

الآن قم بتشغيل هذا الرمز باستخدام المفتاح F5 أو يمكنك التشغيل يدويًا لتحديد الخلية A6 كما هو موضح أدناه.

انتاج:

المثال رقم 2

الآن خذ نفس البيانات ولكن هنا سنرى كيفية استخدام وسيطة إزاحة العمود أيضًا. الآن أريد تحديد الخلية C5.

نظرًا لأنني أرغب في تحديد الخلية C5 أولاً ، فأنا أريد نقل 4 خلايا لأسفل وأخذ العمودين الأيمن للوصول إلى الخلية C5. سوف يقوم الكود أدناه بالمهمة بالنسبة لي.

رمز:

 Sub Offset_Example2 () Range ("A1"). Offset (4، 2) .Select End Sub 

أقوم بتشغيل هذا الرمز يدويًا أو باستخدام المفتاح F5 ، ثم سيحدد الخلية C5 كما هو موضح في لقطة الشاشة أدناه.

انتاج:

المثال رقم 3

لقد رأينا كيفية تعويض الصفوف والأعمدة. يمكننا أيضًا تحديد الخلايا المذكورة أعلاه من الخلايا المحددة أيضًا. على سبيل المثال ، إذا كنت في الخلية A10 وتريد تحديد الخلية A1 ، فكيف تحدد؟

في حالة التحرك لأسفل الخلية ، يمكننا إدخال رقم موجب ، لذلك هنا في حالة التحرك لأعلى ، نحتاج إلى إدخال أرقام سالبة.

من الخلية A9 ، نحتاج إلى الانتقال بمقدار 8 صفوف ، أي -8.

رمز:

 Sub Offset_Example1 () Range ("A9"). Offset (-8) .Select End Sub 

إذا قمت بتشغيل هذا الرمز باستخدام المفتاح F5 أو يمكنك تشغيل هذا الرمز يدويًا ، فسيتم تحديد الخلية A1 من الخلية A9.

انتاج:

المثال رقم 4

افترض أنك في الخلية C8. من هذه الخلية ، تريد تحديد الخلية A10.

من الخلية النشطة ، أي الخلية C8 ، نحتاج أولاً إلى التحرك لأسفل صفين ونحتاج إلى الانتقال إلى اليسار بمقدار عمودين لتحديد الخلية A10.

في حالة الانتقال إلى اليسار لتحديد العمود ، نحتاج إلى تحديد الرقم السلبي. لذا علينا أن نعود هنا بمقدار -2 عمودين.

رمز:

 Sub Offset_Example2 () Range ("C8"). Offset (2، -2). حدد End Sub 

الآن قم بتشغيل هذا الرمز باستخدام مفتاح F5 أو قم بتشغيله يدويًا ، وسيحدد خلية A10 كما هو موضح أدناه:

انتاج:

أشياء للذكرى

  • في حالة تحريك الصفوف لأعلى ، نحتاج إلى تحديد العدد في السلبيات.
  • في حالة الانتقال إلى اليسار لتحديد العمود ، يجب أن يكون الرقم سالبًا.
  • الخلية A1 هي الصف الأول والعمود الأول.
  • الخلية النشطة تعني الخلايا المحددة حاليًا.
  • إذا كنت تريد تحديد الخلية باستخدام OFFSET ، فأنت بحاجة إلى ذكر ".Select".
  • إذا كنت تريد نسخ الخلية باستخدام OFFSET ، فأنت بحاجة إلى ذكر ".Copy".

$config[zx-auto] not found$config[zx-overlay] not found