كيفية التحقق من وجود ورقة باستخدام vba؟

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

لكتابة تعليمات برمجية للتحقق مما إذا كانت الورقة موجودة أم لا، تحتاج إلى حلقة تمر عبر كل ورقة في المصنف وتتطابق مع الاسم الذي قدمته. ولكن هذا هو الأمر، يمكنك استخدام حلقتين مختلفتين لهذا ( For Next و For Each )، واليوم سوف نستخدم كليهما.

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

التحقق من وجود ورقة في المصنف الحالي

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

اتبع الخطوات التالية:

  1. أولاً، قم بتعريف متغير لاستخدامه في الورقة عند تشغيل الحلقة وتخزين اسم الورقة التي تريد البحث عنها.
    declare-a-variable-to-use-for-the-sheet
  2. بعد ذلك، اكتب سطرًا من التعليمات البرمجية لمربع الإدخال لإدخال اسم الورقة التي تريد البحث عنها.
    line-of-code-for-an-input-box
  3. بعد ذلك، ابدأ حلقتك باستخدام الكلمة الأساسية For Each. واستخدم المتغير للإشارة إلى كل ورقة عمل في المصنف.
    start-your-loop
  4. من هنا، تحتاج إلى كتابة عبارة IF THEN ELSE لمطابقة اسم الورقة مع الاسم الذي أدخلته في مربع الإدخال، ثم قم بعرض مربع رسالة إذا تم العثور على التطابق والخروج من الإجراء.
    write-an-if-then-else
  5. في النهاية، سيظهر لك مربع رسالة لإعلامك في حالة عدم العثور على تطابق.
    message-box-to-show

روابط مفيدة: تشغيل ماكرومسجل الماكرو – محرر Visual Basic – دليل وحدات الماكرو الشخصية

الكود الكامل:

 Sub vba_check_sheet() Dim sht As Worksheet Dim shtName As String shtName = InputBox(Prompt:="Enter the sheet name", _ Title:="Search Sheet") For Each sht In ThisWorkbook.Worksheets If sht.Name = shtName Then MsgBox "Yes! " & shtName & " is there in the workbook." Exit Sub End If Next sht MsgBox "No! " & shtName & "is not there in the workbook." End Sub

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

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

إليك رمز آخر للتحقق من وجود الورقة أم لا.

 Sub vba_check_sheet() Dim sht As Worksheet Dim shtName As String Dim i As Long i = Sheets.Count shtName = InputBox(Prompt:="Enter the sheet name", _ Title:="Search Sheet") For i = 1 To i If Sheets(i).Name = shtName Then MsgBox "Yes! " & shtName & " is there in the workbook." Exit Sub End If Next i MsgBox "No! " & shtName & " is not there in the workbook." End Sub

يستخدم هذا الرمز حلقة FOR NEXT ويستخدم إجمالي عدد الأوراق في المصنف، وبناءً على ذلك، قم بالتكرار خلال كل ورقة تطابق الاسم مع الاسم الذي أدخلته.

التحقق من وجود الورقة في المصنف المغلق

في التعليمة البرمجية التالية، لديك حلقة تبحث عن اسم الورقة في مصنف مغلق. للإشارة إلى الملف، استخدمنا عنوان الملف.

 Sub vba_check_sheet() Dim wb As Workbook Dim sht As Worksheet Dim shtName As String shtName = InputBox(Prompt:="Enter the sheet name", _ Title:="Search Sheet") Application.ScreenUpdating = False Set wb = Workbooks.Open _ ("C:UsersDellDesktopsample-file.xlsx") For Each sht In wb.Worksheets If sht.Name = shtName Then wb.Close SaveChanges:=True MsgBox "Yes! " & shtName & " is there in the workbook." _ , vbInformation, "Found" Exit Sub End If Next sht Application.ScreenUpdating = False MsgBox "No! " & shtName _ & " is not there in the workbook.", _ vbCritical, "Not Found" End Sub

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

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

ما هو فبا

الدروس ذات الصلة

اضف تعليق

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *