Utilizarea altor caracteristici pentru a identifica tipurile de date legate

Tipurile de date legate au fost lansate înExcel pentru Office 365 din iunie 2018 și, ca atare, este posibil ca alte caracteristici să nu le poată identifica. Acest lucru poate fi valabil mai ales atunci când doriți să utilizați alte caracteristici pentru a identifica în mod condiționat dacă o celulă conține un tip de date legat sau nu. Acest articol explică câteva soluții pe care le puteți utiliza pentru a identifica tipurile de date legate din celule.

Formule

Puteți scrie întotdeauna formule care fac referire la tipurile de date. Totuși, dacă doriți să extrageți textul unei celule cu tipul de date legat, utilizând funcția TEXT, veți primi o #VALUE! eroare.

O soluție este să utilizați funcția FIELDVALUE și să specificați câmpul Name pentru argumentul field_name . În exemplul următor, dacă celula a1 conține un tip de date bursiere, atunci formula va returna numele stocului.

= FIELDVALUE (a1; "nume")

Cu toate acestea, dacă celula a1 nu conține un tip de date legat, atunci funcția FIELDVALUE va returna o eroare #FIELD!. Dacă doriți să evaluați dacă o celulă conține sau nu un tip de date legat, puteți utiliza următoarea formulă, care utilizează funcția ISERROR pentru a testa dacă funcția FIELDVALUE va returna o eroare.

= IF (ISERROR (FIELDVALUE (a2; "nume")), "această celulă nu are un tip de date legat", "această celulă are un tip de date legat")

Dacă formula se evaluează la o eroare, atunci va returna textul "această celulă nu are un tip de date legat", altfel, se va returna "această celulă are un tip de date legat".

Dacă doriți pur și simplu să suprimați #FIELD! eroare, puteți utiliza:

= IFERROR (FIELDVALUE (a1, "nume"), "")

Care va returna o celulă necompletată dacă există o eroare.

Formatarea condițională

Puteți să formatați condiționat o celulă pe baza dacă are sau nu un tip de date legat. Mai întâi Selectați celulele care au nevoie de formatarea condiționată, apoi accesați pagina de pornire > formatarea condițională > regulă nouă > Utilizați o formulă... Pentru formulă, utilizați următoarele:

= NOT (ISERROR (FIELDVALUE (a1; "nume")))

Unde celula a1 este celula de sus din zona pe care doriți să o evaluați. Apoi aplicați formatul dorit.

În acest exemplu, dacă celula a1 conține un nume de câmp valid pentru "nume", atunci formula returnează TRUE și formatarea se va aplica. Dacă celula a1 nu conține un tip de date legat, atunci formula returnează FALSE și nu se va aplica nicio formatare. Puteți elimina nu dacă doriți să evidențiați celulele care nu conțin în schimb tipuri de date valide legate.

VBA

Există mai multe metode VBA (Visual Basic for Applications) pe care le puteți utiliza pentru a identifica dacă o celulă sau o zonă conține tipuri de date legate. Această primă procedură utilizează proprietatea HasRichDataType

Ambele proceduri vă vor solicita să selectați o zonă de celule de evaluat, apoi să returnați o casetă de mesaj cu rezultatele.

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

Următoarea procedură utilizează proprietatea 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

Acest fragment de cod final este o funcție definită de utilizator (UDF) și o referință la fel ca orice altă formulă Excel. Pur și simplu introduceți =fn_IsLinkedDataType (a1), unde a1 este celula pe care doriți să o evaluați.

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

Pentru a utiliza oricare dintre aceste exemple, apăsați Alt + F11 pentru a deschide Visual Basic Editor (VBE), apoi accesați Inseraremodul> și lipiți codul în fereastra nouă care se deschide în partea dreaptă. Puteți utiliza alt + Q pentru a ieși din nou în Excel când ați terminat. Pentru a executa oricare dintre primele două exemple, accesați fila dezvoltator> cod> macrocomenzi> selectați macrocomanda pe care doriți să o difuzați din listă, apoi selectați rulare.

Aveți nevoie de ajutor suplimentar?

Puteți întreba întotdeauna un expert de la Excel Tech Community, puteți obține asistență de la comunitatea Answers sau puteți sugera o caracteristică nouă sau o îmbunătățire pe Excel UserVoice.

Extindeți-vă competențele Office
Explorați instruirea
Fiți primul care obține noile caracteristici
Alăturați-vă utilizatorilor Office Insider

Au fost utile aceste informații?

Vă mulțumim pentru feedback!

Vă mulțumim pentru feedback! Se pare că ar fi util să luați legătura cu unul dintre agenții noștri de asistență Office.

×