A kapcsolt adattípusok felismerése más funkciókkal

A kapcsolt adattípusokatOffice 365-höz készült Excel az 2018 júniusi verziójában adták ki, és így más funkciók nem fogják tudni a többiet. Ez különösen igaz lehet, ha más funkciókkal szeretné feltételesen megállapítani, hogy egy cella tartalmaz-e kapcsolt adattípust. Ez a cikk ismerteti azokat a kerülő megoldásokat, amelyekkel meghatározhatja a cellákban lévő kapcsolt adattípusokat.

Képletek

Az adattípusokra hivatkozó képletek mindig írhatók. Ha azonban egy olyan cella szövegét szeretné kinyerni, amely a szöveg függvénnyel egy kapcsolt adattípust használ, akkor #VALUE! adni.

Kerülő megoldásként használja a mezőérték függvényt, és adja meg a FIELD_NAME argumentum név mezőjét. Az alábbi példában, ha az a1 cella készlet adattípusú, akkor a képlet az állomány nevét adja vissza.

= MEZŐÉRTÉK (a1; "név")

Ha azonban az a1 cella nem tartalmaz kapcsolt adattípust, akkor a MEZŐÉRTÉK függvény #FIELD! hibát ad vissza.. Ha meg szeretné állapítani, hogy egy cella tartalmaz-e kapcsolt adattípust, akkor a következő képletet használhatja, amely a hibás függvény segítségével teszteli a hibát, ha a MEZŐÉRTÉK függvény hibát ad vissza.

= Ha (hibás (MEZŐÉRTÉK (a2; "név")), "Ez a cella nem tartalmaz kapcsolt adattípust", "Ez a cella egy kapcsolt adattípusú")

Ha a képlet hibát ad vissza, akkor a következőhöz hasonló szöveg jelenik meg: "ennek a cellának nincs kapcsolt adattípusa", ellenkező esetben a "Ez a cella egy kapcsolt adattípusú" értéket ad vissza.

Ha egyszerűen le szeretné tiltani a #FIELDt! hiba, a következőt használhatja:

= HAHIBA (MEZŐÉRTÉK (a1; "név"); "")

A hiba esetén üres cellát ad vissza.

Feltételes formázás

Feltételesen formázhatja a cellákat attól függően, hogy rendelkezik-e kapcsolt adattípussal. Először jelölje ki azokat a cellákat, amelyekhez a feltételes formázás szükséges, majd válassza a kezdőlap > feltételes formázás > új szabály > képlet használata lehetőséget. A képlet esetében a következőt kell használnia:

= NOT (hibás (MEZŐÉRTÉK (a1; "név")))

Ahol az a1 cella a kiértékelni kívánt intervallum legfelső cellája. Ezután alkalmazza a kívánt formátumot.

Ebben a példában, ha az a1 cella érvényes mezőnevet tartalmaz a "név" értékre, akkor a képlet eredménye igaz, és a program alkalmazza a formázást. Ha az a1 cella nem tartalmaz kapcsolt adattípust, akkor a képlet FALSE értéket ad, és a program nem alkalmazza a formázást. Ha nem szeretné, hogy kiemelje az érvényes csatolású adattípusokat tartalmazó cellákat, távolítsa el a nem lehetőséget.

VBA

Több VBA-(Visual Basic for Applications) módszer használható annak meghatározására, hogy egy cella vagy tartomány tartalmaz-e kapcsolt adattípusokat. Ez az első eljárás a HasRichDataType tulajdonságothasználja. 

Mindkét eljárással rákérdez, hogy kijelöli-e a kiértékelni kívánt cellatartományt, majd a találatokat tartalmazó üzenetpanel visszaadása.

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

Ez a következő eljárás a LinkedDataTypeState tulajdonságothasználja.

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

Ez a végső kódrészlet egy felhasználó által definiált függvény (UDF), és csak a többi Excel-képlethez hasonlóan hivatkozik. Egyszerűen írja be az =fn_IsLinkedDataType (a1)képletet, ahol az a1 a kiértékelni kívánt cella.

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

Ha használni szeretné ezeket a példákat, az ALT + F11 billentyűkombinációt lenyomva nyissa meg a Visual Basic Editort (VBE), majd kattintson a Beszúrás> modulelemre, és illessze be a kódot a jobb oldalon megnyíló új ablakba. Ha elkészült, az ALT + Q billentyűkombinációt lenyomva léphet vissza az Excelbe. Ha az első két példát szeretné futtatni, lépjen a Fejlesztőeszközök lapra> kódot> makrók> jelölje ki a listából a futtatni kívánt makrót, és válassza a Futtatásparancsot.

További segítségre van szüksége?

Bármikor segítséget kérhet az Excel technikai közösségétől és az Answers-közösségtől, az Excel User Voice webhelyen pedig új funkciókra vagy fejlesztésekre tehet javaslatot.

Office-jártasság bővítése
Oktatóanyagok megismerése
Új szolgáltatások listájának lekérése
Részvétel az Office Insider programban

Hasznos volt az információ?

Köszönjük a visszajelzését!

Köszönjük visszajelzését. Jobbnak látjuk, ha az Office egyik támogatási szakemberéhez irányítjuk.

×