بيان VBA GoTo | كيفية استخدام GoTo Statement في VBA؟

بيان Excel VBA GoTo

يتم استخدام عبارة VBA GoTo عند حدوث خطأ أثناء تشغيل الكود بدلاً من عرض الخطأ لاستئناف السطر التالي من التعليمات البرمجية عن طريق تجاهل رسالة الخطأ. هناك نوعان من عبارات GOTO أحدهما لتحديد أي نطاق من ورقة العمل في المصنف المحدد والآخر هو معالج الأخطاء.

للتغلب على الأخطاء المتوقعة في VBA ، لدينا وظيفة تسمى "GOTO". سنرى كلا النوعين من بيانات GoTo في هذه المقالة.

2 طرق لاستخدام بيان GoTo في كود VBA

يمكنك تنزيل قالب VBA GoTo Excel هذا هنا - قالب VBA GoTo Excel

# 1 - Application.GoTo طريقة

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

لنلقِ نظرة على صيغة طريقة Application.GoTo

  • [المرجع]: هذا ليس سوى مرجع خلية محدد. إذا لم يتم توفير المرجع بشكل افتراضي ، فسيأخذك إلى آخر نطاق خلايا تم استخدامه.
  • [Scroll]: هذا بيان منطقي لـ TRUE أو FALSE. إذا كانت القيمة TRUE ، فسيتم التمرير عبر النافذة ، وإذا كانت القيمة FALSE ، فلن يتم التمرير عبر النافذة.
مثال

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

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

الخطوة 1: ابدأ اسم ماكرو excel.

رمز:

 GoTo_Example1 فرعي () End Sub 

الخطوة 2: ابدأ طريقة " Application.GoTo "

رمز:

نموذج GoTo_Example1 فرعي ()

التطبيق

End Sub

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

رمز:

 Sub GoTo_Example1 () Application.Goto Reference: = Worksheets ("Jan"). Range ("C5") End Sub 

الخطوة 4: اذكر التمرير كـ TRUE.

رمز:

 Sub GoTo_Example1 () Application.Goto Reference: = Worksheets ("Jan"). Range ("C5") ، Scroll: = True End Sub 

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

الآن سوف أقوم بتغيير وسيطة التمرير إلى FALSE وأرى التغيير الذي ستواجهه.

 GoTo_Example1 () Application.Goto Reference: = Worksheets ("Jan"). Range ("C5") ، Scroll: = False End Sub 

إذا كنت تريد الانتقال إلى مصنف معين ، فأنت بحاجة إلى ذكر اسم المصنف أيضًا قبل اسم المصنف.

 GoTo_Example1 () Application.Goto Reference: = Workbooks ("Book1.xlsx"). Worksheets ("Jan"). Range ("C5") ، Scroll: = False End Sub 

# 2 - طريقة معالج الخطأ

عندما يواجه سطر معين من التعليمات البرمجية خطأً ، يتوقف VBA عن تنفيذ بقية الرمز ويعرض رسالة الخطأ.

على سبيل المثال ، انظر إلى سطر التعليمات البرمجية أدناه.

 أوراق GoTo_Example2 () الفرعية ("أبريل"). احذف الأوراق. أضف End Sub 

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

عندما أقوم بتشغيل هذا الرمز ، لم يكن في المصنف الخاص بي ورقة تسمى أبريل ، لذلك لم يتمكن رمز VBA من العثور على اسم الورقة وألقى بالخطأ. نحتاج في بعض الأحيان إلى تجاهل هذا الخطأ لأنه في كثير من الأحيان إذا لم يكن هناك اسم ورقة يسمى أبريل ، فإننا نحتاج إلى متابعة سطور التعليمات البرمجية الأخرى.

للقضاء على هذا الخطأ ، يمكننا استخدام طريقة GoTo كمعالج للخطأ.

الآن سوف أقوم بتعديل الكود كما في الخطأ ، انتقل إلى السطر التالي

 Sub GoTo_Example2 () عند الخطأ ، انتقل إلى NextLine Sheets ("April"). احذف NextLine: Sheets.Add End Sub 

الآن إذا قمت بتشغيل هذا ، فسيتم إضافة الورقة الجديدة على الرغم من عدم وجود اسم ورقة يسمى أبريل.

تدرك العبارة "On Error GoTo NextLine" أنه في حالة حدوث أي خطأ ، فسوف ينتقل إلى السطر التالي وفي السطر التالي يتمثل رمز VBA في إضافة ورقة جديدة.

أشياء للذكرى

  • إذا كنت تريد الانتقال إلى السطر التالي عند حدوث الخطأ ، يمكنك أيضًا استخدام عبارة On Error Resume Next VBA.
  • للانتقال إلى الخطوة التالية ، يجب أن تتأكد من توقع حدوث خطأ في سطر معين من التعليمات البرمجية.
  • إذا تم تخطي السطر المهم من الكود باستخدام معالج الأخطاء هذا ، فقد لا تنتهي مهمتك بشكل مثالي.