Rakenduskoht
Microsoft 365 rakendus Excel Exceli veebirakendus

Lingitud andmetüübid anti välja Microsoft 365 rakendus Excel juunis 2018 ja seetõttu ei pruugi teised funktsioonid neid tuvastada. See võib olla eriti tõene, kui soovite kasutada muid funktsioone tingimuslikult kindlaks teha, kas lahter sisaldab lingitud andmetüüpi või mitte. Selles artiklis selgitatakse mõningaid lahendusi, mida saate kasutada lahtrites lingitud andmetüüpide tuvastamiseks.

Märkus.: Lingitud andmetüübid on saadaval ainult Worldwide Multi-Tenanti klientklientidele ( Microsoft 365 kontod).

Valemid

Saate alati kirjutada valemeid, mis viitavad andmetüüpidele. Kui soovite lingitud andmetüübiga lahtri teksti ekstraktida funktsiooni TEXT abil, saate #VALUE! #VALUE!.

Lahendus on kasutada funktsiooni FIELDVALUE ja määrata argumendi nimi field_name. Järgmises näites, kui lahter A1 sisaldas aktsia andmetüüpi, tagastab valem aktsia 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 või mitte, saate kasutada järgmist valemit, mis kasutab funktsiooni ISERROR, et kontrollida, kas funktsioon FIELDVALUE tagastab vea.

=IF(ISERROR(FIELDVALUE(A2;"Nimi"));"Sellel lahtril pole lingitud andmetüüpi","Sellel lahtril on lingitud andmetüüp")

Kui valem annab tulemi veale, tagastab see teksti "Sellel lahtril pole lingitud andmetüüpi", vastasel juhul tagastab valem teksti "Sellel lahtril on lingitud andmetüüp".

Kui soovite lihtsalt #FIELD! viga, saate kasutada:

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

Vea korral tagastab see tühja lahtri.

Tingimusvorming

Lahtri saate tingimuslikult vormindada sõltuvalt sellest, kas sellel on lingitud andmetüüp või mitte. Esmalt valige lahtrid, mis vajavad tingimusvormingut, ja seejärel valige Avaleht > Tingimusvorming > Uus reegel > Kasutage valemit... Valemi jaoks kasutage järgmist.

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

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

Selles näites, kui lahter A1 sisaldab kehtivat väljanime "Nimi", tagastab valem väärtuse TRUE ja rakendatakse vorming. Kui lahter A1 ei sisalda lingitud andmetüüpi, tagastab valem väärtuse FALSE ja vormingut ei rakendata. Kui soovite esile tõsta lahtreid, mis ei sisalda õigeid lingitud andmetüüpe, võite eemaldada not-koodi.

VBA

On mitu VBA-meetodit (Visual Basic for Applications), mille abil saate tuvastada, kas lahter või vahemik sisaldab lingitud andmetüüpe. Esimene toiming kasutab atribuuti HasRichDataType. 

Mõlemas protseduuris palutakse teil valida hinnatav lahtrivahemik ja seejärel tagastada tulemitega teateväli.

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 koodilõik on kasutaja määratletud funktsioon (UDF) ja te viitate sellele täpselt nagu Excel valemile. Sisestage lihtsalt =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

Nende näidete kasutamiseks vajutage klahvikombinatsiooni Alt +F11, et avada Visual Basic Editor (VBE), seejärel valige Lisa> Moodulja kleepige kood uude aknasse, mis avaneb paremal. Kui olete lõpetanud, saate klahvikombinatsiooni Alt+Q abil Excel tagasi pääsu. Kahe esimese näite käivitamiseks avage menüü Arendaja > Kood > Makrod > loendist makro, mida soovite käivitada, ja seejärel valige Käivita.

Kas vajate rohkem abi?

Kui teil on küsimusi, saate need esitada Exceli tehnikakogukonnafoorumis, kus teile vastavad asjatundjad, või teistele kasutajatele kogukonnafoorumis.

Kas vajate veel abi?

Kas soovite rohkem valikuvariante?

Siin saate tutvuda tellimusega kaasnevate eelistega, sirvida koolituskursusi, õppida seadet kaitsma ja teha veel palju muud.