Usar outros recursos para identificar tipos de dados vinculados

Os tipos de dados vinculados foram lançados emExcel para Office 365 em junho de 2018 e, assim, 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.

Fórmulas

Você sempre pode escrever fórmulas que façam referência a 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 texto, obterá uma #VALUE! erro.

Uma solução alternativa é usar a função FieldValue e especificar o campo Name para o argumento field_name . No exemplo a seguir, se a célula a1 contiver um tipo de dados de estoque, a fórmula retornará o nome da ação.

= FIELDvalue (a1, "nome")

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

= SE (IsError (campo = campo (a2; "nome")), "esta célula não tem um tipo de dados vinculado", "esta célula tem um tipo de dados vinculado")

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

Se você simplesmente deseja suprimir o #FIELD! erro, você pode usar:

= SEERRO (CAMPOvalue (A1; "nome"), "")

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

Formatação condicional

Você pode Formatar condicionalmente uma célula com base em ter ou não um tipo de dados vinculado. Primeiro, selecione as células que precisam da formatação condicional e, em seguida, vá para página inicial > formatação condicional > nova regra > usar uma fórmula... Para a fórmula, você usaria o seguinte:

= Não (IsError (campo (A1; "nome")))

Onde a célula a1 é a célula superior do intervalo que você deseja avaliar. Em seguida, aplique o formato desejado.

Neste exemplo, se a célula a1 contiver um nome de campo válido para "nome", a fórmula retornará verdadeiro e a formatação será aplicada. Se a célula a1 não contiver um tipo de dados vinculado, a fórmula retornará falso, e nenhuma formatação será aplicada. Você pode remover o NOT se quisesse destacar todas as células que não contenham tipos de dados vinculados válidos em vez disso.

VBA

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

Esses dois procedimentos solicitarão que você selecione um intervalo de células a ser avaliado e, em seguida, retorna 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 da mesma forma que qualquer outra fórmula do Excel. 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 destes exemplos, pressione ALT + F11 para abrir o editor do Visual Basic (VBE), em seguida, vá para Inserir> móduloe cole o código na nova janela que é aberta à direita. Você pode usar ALT + Q para sair novamente para o Excel quando tiver terminado. Para executar um dos dois primeiros exemplos, acesse a guia desenvolvedor> código> macros> selecione a macro que você deseja executar na lista e, em seguida, selecione executar.

Precisa de mais ajuda?

Você pode sempre consultar um especialista na Excel Tech Community, obter suporte na Comunidade de respostas ou sugerir um novo recurso ou melhoria no UserVoice do Excel.

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

Essas informações foram úteis?

Obrigado por seus comentários!

Agradecemos pelos seus comentários! Parece que pode ser útil conectar você a um de nossos agentes de suporte do Office.

×