Gekoppelde gegevenstypen werden voor het eerst vrijgegeven in Excel voor Microsoft 365 2018 in juni en omdat deze functies mogelijk niet kunnen worden herkend door andere functies. 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.
Opmerking: Gekoppelde gegevenstypen zijn alleen beschikbaar voor de wereldwijde clients met meerdere tenants (standaard Microsoft 365 accounts).
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! weergegeven.
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.