Andere functies gebruiken om gekoppelde gegevenstypen te identificeren

Gekoppelde gegevenstypen werden gepubliceerd inExcel voor Office 365 in juni 2018 en in de andere functies zijn deze mogelijk niet herkend. Dit kan vooral van toepassing zijn wanneer u andere functies wilt gebruiken om 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.

Formules

U kunt altijd formules schrijven waarin naar gegevenstypen wordt verwezen. Als u echter de tekst van een cel wilt extraheren met een gekoppeld gegevenstype met de functie tekst, krijgt u een #VALUE! als resultaat.

Een tijdelijke oplossing is de functie veld waarde gebruiken en het veld name opgeven voor het argument Field_Name . In het volgende voorbeeld, als cel a1 een gegevenstype voor aandelen bevat, resulteert de formule in de naam van de aandelen.

= VELD waarde (a1; "naam")

Als cel a1 echter geen gekoppeld gegevenstype bevat, geeft de functie veld waarde de fout #FIELD! als resultaat.. Als u wilt controleren of een cel een gekoppeld gegevenstype bevat, kunt u de volgende formule gebruiken, waarin de functie ISFOUT wordt gebruikt om te testen of de functie veld waarde een fout oplevert.

= Als (ISFOUT (veld waarde (a2; "naam")), "deze cel heeft geen gekoppeld gegevenstype", "deze cel heeft een gekoppeld gegevenstype")

Als de formule een fout oplevert, wordt de tekst ' deze cel bevat geen gekoppeld gegevenstype ' weergegeven, anders wordt ' deze cel heeft een gekoppeld gegevenstype ' weergegeven.

Als u alleen de #FIELD wilt onderdrukken. fout: u kunt de volgende foutmelding gebruiken:

= Als. fout (veld waarde (a1; "naam"); "")

Hiermee wordt een lege cel als resultaat gegeven als er een fout is.

Voorwaardelijke opmaak

U kunt voorwaardelijke opmaak van een cel toepassen, ongeacht of deze een gekoppeld gegevenstype bevat. U selecteert eerst de cellen waarvoor u voorwaardelijke opmaak nodig hebt en vervolgens naar start > voorwaardelijke opmaak > nieuwe regel > een formule gebruiken... Voor de formule gebruikt u het volgende:

= NOT (ISFOUT (veld waarde (a1; "naam"))))

Waarbij cel a1 de bovenste cel is van het bereik dat u wilt evalueren. Pas de gewenste opmaak toe.

Als cel a1 in dit voorbeeld een geldige veld naam bevat voor ' name ', wordt de formule als resultaat gegeven en wordt de opmaak toegepast. Als cel a1 geen gekoppeld gegevenstype bevat, resulteert de formule in ONWAAR en wordt geen opmaak toegepast. U kunt de niet-gemarkeerde cellen met geldige gekoppelde gegevenstypen wissen.

VBA

U kunt verschillende VBA-methoden (Visual Basic for Applications) gebruiken om vast te stellen of een cel of een bereik gekoppelde gegevenstypen bevat. Voor deze eerste procedure wordt de eigenschap HasRichDataTypegebruikt. 

Beide procedures vragen u om te selecteren welke cellen moeten worden geëvalueerd en vervolgens een berichtvenster 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 LinkedDataTypeStategebruikt.

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 definitieve codefragment is een door de gebruiker gedefinieerde functie (UDF) en verwijst naar deze net zoals elke andere formule voor Excel. Voer simpelweg =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 wilt gebruiken, drukt u op ALT + F11 om de VBE (Visual Basic Editor) te openen, gaat u naar> moduleInvoegen en plakt u de code in het nieuwe venster dat wordt geopend aan de rechterkant. Wanneer u klaar bent, drukt u op Alt + Q om terug te gaan naar Excel. 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 in de lijst en selecteert u vervolgens uitvoeren.

Meer hulp nodig?

U kunt altijd uw vraag stellen aan een expert in de Excel Tech Community, ondersteuning vragen in de Answer-community of een nieuwe functie of verbetering voorstellen in Excel User Voice.

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

Was deze informatie nuttig?

Bedankt voor uw feedback.

Hartelijk dank voor uw feedback! Het lijkt ons een goed idee om u in contact te brengen met een van onze Office-ondersteuningsagenten.

×