Os tipos de dados vinculados foram lançados pela Excel do Microsoft 365 em junho de 2018 e, como tal, outros recursos podem não ser capazes de identificá-los. Isso pode ser especialmente verdadeiro quando você deseja usar outros recursos para identificar condicionalmente se uma célula contém um tipo de dados vinculado ou não. Este artigo explica algumas soluções alternativas que você pode usar para identificar tipos de dados vinculados nas células.

Observação: Os tipos de dados vinculados só estão disponíveis para clientes Multi-Tenant (contas Microsoft 365 padrão).

Fórmulas

Você sempre pode escrever fórmulas que referenciam tipos de dados. No entanto, se você quiser extrair o texto de uma célula com um tipo de dados vinculado usando a função TEXT, você obterá uma #VALUE! erro.

Uma solução alternativa é usar a função FIELDVALUE e especificar o campo Nome do argumento field_name. No exemplo a seguir, se a célula A1 contivesse um tipo de dados de ações, a fórmula retornaria o nome da ação.

=FIELDVALUE(A1,"Name")

No entanto, se a célula A1 não contém um tipo de dados vinculado, a função FIELDVALUE retornará um erro #FIELD!. Se você quiser avaliar se uma célula contém ou não um tipo de dados vinculado, você pode usar a seguinte fórmula, que usa a função ISERROR para testar se a função FIELDVALUE retornará um erro.

=IF(ISERROR(FIELDVALUE(A2,"Name")),"This cell doesn't have a linked data type","This cell has a linked data type")

Se a fórmula for avaliada como um erro, ela retornará o texto "Essa célula não tem um tipo de dados vinculado", caso contrário, ela retornará "Essa célula tem um tipo de dados vinculado".

Se você simplesmente quiser suprimir a #FIELD! error, você pode usar:

=IFERROR(FIELDVALUE(A1,"Name"),"")

Que retornará uma célula em branco se houver um erro.

Formatação condicional

Você pode formatar condicionalmente uma célula com base em se ela tem ou não um tipo de dados vinculado. Primeiro, selecione as células que precisam da formatação condicional e vá para Home >Conditional Formatting > New Rule > Use a formula... Para a fórmula, você usaria o seguinte:

=NOT(ISERROR(FIELDVALUE(A1,"Name")))

Onde a célula A1 é a célula superior no intervalo que você deseja avaliar. Em seguida, aplique o formato que você deseja.

Neste exemplo, se a célula A1 contiver um nome de campo válido para "Name", a fórmula retornará TRUE e a formatação será aplicada. Se a célula A1 não conter um tipo de dados vinculado, a fórmula retornará FALSE e nenhuma formatação será aplicada. Você poderia remover o NOT se quisesse realçar qualquer célula que não contenha tipos de dados vinculados válidos.

VBA

Há vários métodos VBA (Visual Basic for Applications) que você pode usar para identificar se uma célula ou intervalo contém tipos de dados vinculados. Este primeiro procedimento usa a propriedade HasRichDataType

Ambos os procedimentos solicitarão que você selecione um intervalo de células a ser avaliada e, em seguida, retornará uma caixa de mensagem com os resultados.

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

Este próximo procedimento usa a propriedade 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

Este trecho de código final é uma função definida pelo usuário (UDF) e você faz referência a ele como qualquer outra fórmula Excel usuário. Basta digitar =fn_IsLinkedDataType(A1), onde A1 é a célula que você deseja avaliar.

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

Para usar qualquer um dessesexemplos, pressione Alt+F11 para abrir o editor de Visual Basic (VBE), em seguida, vá para Inserir um módulo> e colar o código na nova janela que abre à direita. Você pode usar Alt+Q para sair de Excel quando terminar. Para executar um dos dois primeiros exemplos, vá para a guia Desenvolvedor> Código> Macros> selecione a macro que você deseja executar na lista e selecione Executar.

Precisa de mais ajuda?

Você pode sempre consultar um especialista na Excel Tech Community ou obter suporte na Comunidade de respostas.

Precisa de mais ajuda?

Expanda suas habilidades
Explore o treinamento
Obtenha novos recursos primeiro
Ingressar Microsoft Office Insider

Estas informações foram úteis?

Qual é o seu grau de satisfação com a qualidade da tradução?
O que afetou sua experiência?

Obrigado por seus comentários!

×