Muude funktsioonide kasutamine lingitud andmetüüpide tuvastamiseks

Lingitud andmetüübid avaldatiExcel Office 365 jaoks juunis 2018, kuid muud funktsioonid ei pruugi olla suutelised neid tuvastama. See võib olla eriti tõene, kui soovite tingimuslikult tuvastada, kas lahter sisaldab lingitud andmetüüpi või mitte. Selles artiklis selgitatakse mõnda lahendust, mida saate kasutada lingitud andmetüüpide tuvastamiseks lahtrites.

Valemid

Saate alati kirjutada valemeid, mis viitavad andmetüüpidele. Kui aga soovite eraldada lahtri teksti, mille andmetüüp on lingitud, saate kasutada #VALUE! #VALUE!.

Lahendus on kasutada funktsiooni FIELDVALUE ja määrata argumendi Field_Name väli nimi . Järgmises näites kui lahter a1 sisaldas lao andmetüüpi, tagastaks valem lao nime.

= FIELDVALUE (a1; "nimi")

Kui lahter a1 ei sisalda lingitud andmetüüpi, tagastab funktsioon FIELDVALUE veaväärtuse #FIELD!. Kui soovite hinnata, kas lahter sisaldab lingitud andmetüüpi, saate kasutada järgmist valemit, mis kasutab funktsiooni ISERROR, et kontrollida, kas funktsioon FIELDVALUE tagastab tõrke.

= IF (ISERROR (FIELDVALUE (a2; "nimi")), "sellel lahtril pole lingitud andmetüüpi", "sellel lahtril on lingitud andmetüüp")

Kui valem annab tulemuseks vea, tagastatakse tekst "sellel lahtril pole lingitud andmetüüpi", vastasel juhul tagastatakse "sellel lahtril on lingitud andmetüüp".

Kui soovid lihtsalt #FIELD maha suruda! tõrge, saate kasutada järgmist.

= IFERROR (FIELDVALUE (a1; "nimi"); "")

Mis tagastab tühja lahtri, kui esineb tõrge.

Tingimusvorming

Lahtri saab tingimuslikult vormindada , sõltuvalt sellest, kas sellel on lingitud andmetüüp või mitte. Kõigepealt valige lahtrid, mis vajavad tingimusvormingut, ja seejärel minge >tingimusvorming > Uus reegel > valemi abil.. . Valemis tuleks kasutada järgmist.

= NOT (ISERROR (FIELDVALUE (a1; "nimi")))

Kus lahter a1 on vahemiku ülemine lahter, mida soovite hinnata. Seejärel rakendage soovitud vorming.

Selles näites, kui lahter a1 sisaldab nime "nimi" jaoks sobivat väljanime, siis valem tagastatakse TÕESEks ja vorminguks. Kui lahter a1 ei sisalda lingitud andmetüüpi, siis valem annab tulemiks väärtuse FALSE ja vormingut ei rakendata. Kui soovite esile tõsta kõik lahtrid, mis ei sisalda sobivaid lingitud andmetüüpe, võite selle eemaldada mitte.

VBA

On mitu VBA-d (rakenduse Visual Standard for Applications) meetodeid, mida saate kasutada selleks, et tuvastada, kas lahter või vahemik sisaldab lingitud andmetüüpe. See esimene toiming kasutab atribuuti HasRichDataType

Mõlemad protseduurid paluvad teil valida, millist lahtrivahemikku soovite hinnata, ja seejärel tagastada tulemiga sõnumi.

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

Järgmine toiming kasutab atribuuti LinkedDataTypeState.

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

See lõplik kood väljavõte on kasutaja määratletud funktsioon (UDF) ja viitate sellele sarnaselt mõnele muule Exceli valemile. Lihtsalt sisesta =fn_IsLinkedDataType (a1), kus a1 on lahter, mida soovite hinnata.

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

Kui soovite kasutada mõnda neist näidetest, vajutage klahvikombinatsiooni ALT + F11 , et avada Visual Visual Editor (VBE), seejärel minge> moodulilisamine ja kleepige kood uude aknasse, mis avaneb paremal. Kui olete lõpetanud, saate uuesti Excelisse väljumiseks kasutada klahvikombinatsiooni Alt + Q . Kahe esimese näite käitamiseks avage menüü arendaja> kood> makrod> valige loendist makro, mille soovite käivitada, ja seejärel valige Käivita.

Kas vajate rohkem abi?

Võite oma küsimuse alati esitada mõnele Exceli tehnikakogukonna eksperdile, otsida abi vastustefoorumist või soovitada mõnd uut funktsiooni või täiustust Exceli User Voice’i lehel.

Täiendage Office'i kasutamise oskusi
Tutvuge koolitusmaterjalidega
Kasutage uusi funktsioone enne teisi
Liituge Office Insideri programmiga

Kas sellest teabest oli abi?

Täname tagasiside eest!

Täname tagasiside eest! Tundub, et võiksime teid kokku viia ühega meie Office'i tugiagentidest, kes aitab teil probleemi lahendada.

×