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.