Sammenkædede datatyper blev først udgivet i Excel til Microsoft 365 i juni 2018, og derfor kan andre funktioner muligvis ikke identificere dem. Dette kan især være sandt, når du vil bruge andre funktioner til at angive, om en celle indeholder en sammenkædet datatype eller ej. I denne artikel beskrives nogle af de løsninger, du kan bruge til at identificere sammenkædede datatyper i celler.
Bemærk!: Sammenkædede datatyper er kun tilgængelige for globale multi-lejer klienter (standard Microsoft 365 konti).
Formler
Du kan altid skrive formler, der henviser til datatyper. Men hvis du vil udtrække teksten i en celle med en sammenkædet datatype ved hjælp af funktionen tekst, får du et #VALUE! fejl.
Du kan løse problemet ved at bruge funktionen feltværdi og angive navne feltet for argumentet field_name . Hvis celle a1 i følgende eksempel indeholdt en aktie datatype, returnerer formlen aktieen.
= FELTVÆRDI (a1; "navn")
Men hvis celle a1 ikke indeholder en sammenkædet datatype, vil funktionen FELTVÆRDI returnere en #FIELD!-fejl. Hvis du vil evaluere, om en celle indeholder en sammenkædet datatype, kan du bruge følgende formel, som anvender funktionen fejl til at teste, om funktionen FELTVÆRDI returnerer en fejl.
= Hvis (fejl (FELTVÆRDI (a2; "navn")), "denne celle har ikke en sammenkædet datatype", "denne celle har en sammenkædet datatype")
Hvis formlen evalueres til en fejl, returneres teksten "denne celle har ikke en sammenkædet datatype", ellers returneres "denne celle har en sammenkædet datatype".
Hvis du blot vil undertrykke #FIELD! fejl, kan du bruge:
= Hvis. fejl (FELTVÆRDI (a1; "navn"), "")
Derved returneres en tom celle, hvis der er en fejl.
Betinget formatering
Du kan formatere en celle betinget, afhængigt af om den har en sammenkædet datatype. Du skal først markere de celler, der skal have den betingede formatering, og derefter gå til start > betinget formatering > ny regel > bruge en formel... For formlen skal du bruge følgende:
= IKKE (fejl (FELTVÆRDI (a1; "navn"))
Hvor celle a1 er den øverste celle i det område, du vil evaluere. Anvend derefter det ønskede format.
Hvis celle a1 i dette eksempel indeholder et gyldigt feltnavn for "navn", returnerer formlen sand, og der anvendes formatering. Hvis celle a1 ikke indeholder en sammenkædet datatype, returnerer formlen falsk, og der vil ikke blive anvendt formatering. Du kan fjerne ikke, hvis du vil fremhæve celler, der ikke indeholder gyldige sammenkædede datatyper i stedet.
VBA
Der er flere VBA-metoder (Visual Basic for Applications), som du kan bruge til at identificere, om en celle eller et område indeholder sammenkædede datatyper. Denne første procedure bruger egenskaben HasRichDataType.
Begge disse procedurer beder dig om at markere et celleområde, der skal evalueres, og derefter returnere et meddelelsesfelt med resultaterne.
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
Denne næste procedure anvender egenskaben 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
Dette endelige kodestykke er en brugerdefineret funktion (UDF), og du henviser til det ligesom enhver anden Excel-formel. Du skal blot indtaste =fn_IsLinkedDataType (a1), hvor a1 er den celle, du vil evaluere.
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
Hvis du vil bruge et af disse eksempler, skal du trykke på alt + F11 for at åbne Visual Basic Editor (VBE) og derefter gå til Indsæt> modulog indsætte koden i det nye vindue, der åbnes til højre. Du kan bruge alt + Q til at afslutte tilbage til Excel, når du er færdig. Hvis du vil køre en af de første to eksempler, skal du gå til fanen udvikler> kode> makroer> vælge den makro, du vil afspille, på listen og derefter vælge Kør.
Har du brug for mere hjælp?
Du kan altid spørge en ekspert i Excel Tech Community, få support i Answers community eller foreslå en ny funktion eller forbedring i Excel User Voice.
Bemærk!: Denne side er oversat ved hjælp af automatisering og kan indeholde grammatiske fejl og unøjagtigheder. Det er vores hensigt, at dette indhold skal være nyttigt for dig. Var disse oplysninger nyttige? Her er artiklen på engelsk, så du kan sammenligne.