وظيفة 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".