Gekoppelde gegevenstypen zijn voor het eerst uitgebracht in Excel voor Microsoft 365 juni 2018, en als zodanig kunnen andere functies deze mogelijk niet identificeren. Dit kan met name het geval zijn wanneer u andere functies wilt gebruiken om voorwaardelijk te bepalen of een cel een gekoppeld gegevenstype bevat of niet. In dit artikel worden enkele tijdelijke oplossingen beschreven die u kunt gebruiken om gekoppelde gegevenstypen in cellen te identificeren.

Opmerking: Gekoppelde gegevenstypen zijn alleen beschikbaar voor Worldwide Multi-Tenant-clients (standaardaccounts Microsoft 365 accounts).

Formules

U kunt altijd formules schrijven die verwijzen naar gegevenstypen. Als u echter de tekst van een cel met een gekoppeld gegevenstype wilt extraheren met de functie TEKST, krijgt u een #VALUE! weergegeven.

Een tijdelijke oplossing is het gebruik van de functie VELDWAARDE en het veld Naam opgeven voor het field_name argument. Als cel A1 in het volgende voorbeeld een aandelengegevenstype bevatte, zou de formule de naam van de aandelen retourneren.

=VELDWAARDE(A1;"Naam")

Als cel A1 echter geen gekoppeld gegevenstype bevat, geeft de functie VELDWAARDE een fout #FIELD!. Als u wilt evalueren of een cel al dan niet een gekoppeld gegevenstype bevat, kunt u de volgende formule gebruiken, waarbij de functie ISFOUT wordt gebruikt om te testen of de functie VELDWAARDE een fout retournert.

=ALS(ISFOUT(VELDWAARDE(A2;"Naam")),"Deze cel heeft geen gekoppeld gegevenstype","Deze cel heeft een gekoppeld gegevenstype")

Als de formule wordt geëvalueerd op een fout, wordt de tekst 'Deze cel heeft geen gekoppeld gegevenstype' als retourneert, anders retourneert de formule 'Deze cel heeft een gekoppeld gegevenstype'.

Als u de #FIELD! kunt u het volgende doen:

=ALSFOUT(VELDWAARDE(A1;"Naam";";")

Dit geeft een lege cel als er een fout is.

Voorwaardelijke opmaak

U kunt een cel voorwaardelijk opmaken op basis van het al dan niet hebben van een gekoppeld gegevenstype. U selecteert eerst de cellen die de voorwaardelijke opmaak nodig hebben en gaat vervolgens naar Start > Voorwaardelijke opmaak > Nieuwe regel > Een formule gebruiken... Voor de formule gebruikt u het volgende:

=NIET(ISFOUT(VELDWAARDE(A1;"Naam")))

Waar cel A1 de bovenste cel in het bereik is dat u wilt evalueren. Pas vervolgens de beste indeling toe.

Als cel A1 in dit voorbeeld een geldige veldnaam voor 'Naam' bevat, retourneert de formule WAAR en wordt de opmaak toegepast. Als cel A1 geen gekoppeld gegevenstype bevat, retourneert de formule ONWAAR en wordt er geen opmaak toegepast. U kunt de NOT verwijderen als u cellen wilt markeren die geen geldige gekoppelde gegevenstypen bevatten.

VBA

Er zijn verschillende VBA-methoden (Visual Basic for Applications) die u kunt gebruiken om te bepalen of een cel of bereik gekoppelde gegevenstypen bevat. In deze eerste procedure wordt de eigenschap HasRichDataType gebruikt. 

In beide procedures wordt u gevraagd een cellenbereik te selecteren om te evalueren en vervolgens een berichtvak met de resultaten te retourneren.

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

In deze volgende procedure wordt de eigenschap LinkedDataTypeState gebruikt.

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

Dit laatste codefragment is een door de gebruiker gedefinieerde functie (UDF) en u verwijst er net als elke andere formule Excel naar. Voer =fn_IsLinkedDataType(A1)in, waarbij A1 de cel is die u wilt evalueren.

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

Als u een van deze voorbeelden wiltgebruiken, drukt u op Alt+F11 om de Visual Basic Editor (VBE) te openen, gaat u naar Module invoegen> en plakt u de code in het nieuwe venster dat aan de rechterkant wordt geopend. U kunt Alt+Q gebruiken om terug te gaan naar Excel wanneer u klaar bent. Als u een van de eerste twee voorbeelden wilt uitvoeren, gaat u naar het tabblad Ontwikkelaars >Code> Macro's> selecteert u de macro die u wilt uitvoeren vanuit de lijst en selecteert u Vervolgens Uitvoeren.

Meer hulp nodig?

U kunt altijd uw vraag stellen aan een expert in de Excel Tech Community of ondersteuning vragen in de Answers-community.

Meer hulp nodig?

Uw vaardigheden uitbreiden
Training verkennen
Als eerste nieuwe functies krijgen
Deelnemen aan Microsoft Office Insiders

Was deze informatie nuttig?

Hoe tevreden bent u met de taalkwaliteit?
Wat heeft uw ervaring beïnvloed?

Bedankt voor uw feedback.

×