استخدام ميزات أخرى لتحديد أنواع البيانات المرتبطة

تم إصدار أنواع البيانات المرتبطة فيExcel for Office 365 في 2018 يونيو ، ومع ذلك ، قد لا تتمكن بعض الميزات الأخرى من التعرف عليها. يمكن ان يكون ذلك صحيحا بشكل خاص عندما تريد استخدام ميزات أخرى لتحديد ما إذا كانت الخلية تحتوي علي نوع بيانات مرتبط ام لا. تشرح هذه المقالة بعض الحلول البديلة التي يمكنك استخدامها لتحديد أنواع البيانات المرتبطة في الخلايا.

الصيغ

يمكنك دائما كتابه الصيغ التي تشير إلى أنواع البيانات. ومع ذلك ، إذا كنت تريد استخراج نص خليه بنوع بيانات مرتبط باستخدام الدالة TEXT ، ستحصل علي #VALUE! #REF!.

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

= FIELDVALUE (A1, "Name")

ومع ذلك ، إذا كانت الخلية A1 لا تحتوي علي نوع بيانات مرتبط ، سترجع الدال #FIELDه FIELDVALUE الخطا!. إذا كنت تريد تقييم ما إذا كانت الخلية تحتوي علي نوع بيانات مرتبط ، فيمكنك استخدام الصيغة التالية ، التي تستخدم الدالة ISERROR لمعرفه ما إذا كانت الدالة FIELDVALUE سترجع خطا.

= IF (ISERROR (FIELDVALUE (A2, "Name")) ، "لا تحتوي هذه الخلية علي نوع بيانات مرتبط" ، "الخلية تحتوي علي نوع بيانات مرتبط")

إذا تم تقييم الصيغة إلى خطا ، سترجع النص "لا تحتوي هذه الخلية علي نوع بيانات مرتبط" ، والا سيتم إرجاع "هذه الخلية إلى نوع بيانات مرتبط".

إذا كنت تريد ببساطه منع ال#FIELD! الخطا ، يمكنك استخدام:

= IFERROR (FIELDVALUE (A1, "Name"), "")

التي سترجع خليه فارغه في حاله وجود خطا.

التنسيق الشرطي

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

= NOT (ISERROR (FIELDVALUE (A1, "Name")))

حيث تمثل الخلية A1 الخلية العلوية في النطاق الذي تريد تقييمه. ثم قم بتطبيق التنسيق الذي تريده.

في هذا المثال ، إذا كانت الخلية A1 تحتوي علي اسم حقل صالح ل "Name" ، سترجع الصيغة الدالة TRUE سيتم تطبيق التنسيقات. إذا لم تحتوي الخلية A1 علي نوع بيانات مرتبط ، سترجع الصيغة FALSE ، ولن يتم تطبيق اي تنسيق. يمكنك أزاله الخلية NOT إذا أردت تمييز اي خلايا لا تحتوي علي أنواع بيانات مرتبطة صالحه بدلا من ذلك.

VBA

هناك العديد من أساليب VBA (Visual Basic for Applications) التي يمكنك استخدامها لتحديد ما إذا كانت الخلية أو النطاق تحتوي علي أنواع بيانات مرتبطة. يستخدم هذا الاجراء الأول الخاصية هاسريتشداتاتيبي

سيطالبك كل من هذه الإجراءات بتحديد نطاق من الخلايا لتقييمه ، ثم إرجاع مربع رسالة مع النتائج.

Sub IsLinkedDataType()
    Dim c As Range
    Dim rng As Range
    Dim strResults As String
    
    Set rng = Application.InputBox("Select a range to check for linked data types", Type:=8)
    
    For Each c In rng
      '    Check if the HasRichDataType is TRUE or FALSE
        If c.HasRichDataType = True Then
        '   The cell holds a linked data type
            strResults = strResults & c.Text & " - Linked data type" & vbCrLf
        Else
            strResults = strResults & c.Text & " - Not a linked data type" & vbCrLf
        End If
    Next c

    MsgBox "Your range contains the following details" & vbCrLf & vbCrLf & strResults, vbInformation + vbOKOnly, "Results"
    
End Sub

يستخدم هذا الاجراء التالي خاصيه لينكيداتاتيبيستاتي.

Sub IsLinkedDataTypeState()
    Dim c As Range
    Dim rng As Range
    Dim strResults As String
    
    Set rng = Application.InputBox("Select a range to check for linked data types", Type:=8)
    
    For Each c In rng
   '    Check if the LinkedDataTypeState is 1 (TRUE) or 0 (FALSE)
        If c.LinkedDataTypeState = 1 Then
        '   The cell holds a linked data type
            strResults = strResults & c.Text & " - Linked data type" & vbCrLf
        Else
            strResults = strResults & c.Text & " - Not a linked data type" & vbCrLf
        End If
    Next c
    
   MsgBox "Your range contains the following details" & vbCrLf & vbCrLf & strResults, vbInformation + vbOKOnly, "Results"

End Sub

جزء التعليمات البرمجية النهائي هذا عبارة عن داله معرفه من قبل المستخدم (UDF) ، وترجع الاشاره اليها تماما مثل اي صيغه Excel أخرى. ببساطه ادخل =fn_IsLinkedDataType (A1)، حيث يكون A1 هو الخلية التي تريد تقييمها.

Public Function fn_IsLinkedDataType(c As Range)
'   Function will return TRUE if a referenced cell contains a linked data type
    If c.HasRichDataType = True Then
      fn_IsLinkedDataType = "Linked data type"
    Else
        fn_IsLinkedDataType = "Not a linked data type"
    End If
End Function

لاستخدام اي من هذه الامثله ، اضغط علي Alt + F11 لفتح محرر Visual BASIC (VBE) ، ثم انتقل إلى ادراج> وحده النمطية، وألصق التعليمات البرمجية في النافذة الجديدة التي يتم فتحها إلى اليسار. يمكنك استخدام Alt + Q للعودة إلى Excel عند الانتهاء. لتشغيل اي من المثالين الأولين ، انتقل إلى علامة التبويب المطور> التعليمات البرمجية> وحدات الماكرو> حدد الماكرو الذي تريد تشغيله من القائمة ، ثم حدد تشغيل.

هل تحتاج إلى مزيد من المساعدة؟

ويمكنك دائماً الاستفسار من أحد الخبراء في مجتمع Excel‏ التقني،أو الحصول على الدعم من خلال إجابات المجتمع،أو اقتراح ميزة جديدة أو تحسين عن طريق ‏Excel User Voice‏.

تعزيز مهارات Office
استكشاف التدريب
الحصول على الميزات الجديدة أولاً
الانضمام إلى Office Insider

هل كانت المعلومات مفيدة؟

نشكرك على ملاحظاتك!

شكراً لك على الملاحظات! يبدو أنه من المفيد إيصالك بأحد وكلاء دعم Office لدينا.

×