Utilização de outras funcionalidades para identificar tipos de dados ligados

Os tipos de dados ligados foram lançados pela primeira vez em Excel para Microsoft 365 em junho de 2018, e como tal, outras funcionalidades podem não ser capazes de identificá-los. Isto pode ser especialmente verdade quando se pretende utilizar outras funcionalidades para identificar condicionalmente se uma célula contém ou não um tipo de dados ligado. Este artigo explica algumas sobras que pode usar para identificar tipos de dados ligados em células.

Nota: Os tipos de dados ligados só estão disponíveis para clientes multi-inquilinos mundiais (contas standard Microsoft 365 ).

Fórmulas

Pode sempre escrever fórmulas que referenciam tiposde dados. No entanto, se pretender extrair o texto de uma célula com um tipo de dados ligado utilizando a função TEXT, terá um #VALUE! .

Uma suver é utilizar a função FIELDVALUE e especificar o campo Nome para o argumento field_name. No exemplo seguinte, se a célula A1 contivesse um tipo de dados de stock, então a fórmula devolveria o nome de stock.

=FIELDVALUE(A1","Nome")

No entanto, se a célula A1 não contiver um tipo de dados ligado, então a função FIELDVALUE devolverá um erro #FIELD!. Se pretender avaliar se uma célula contém ou não um tipo de dados ligado, pode utilizar a seguinte fórmula, que utiliza a função ISERROR para testar se a função FIELDVALUE devolverá um erro.

=IF (ISERROR(FIELDVALUE(A2,"Name"))"Esta célula não tem um tipo de dados ligado", "Esta célula tem um tipo de dados ligado")

Se a fórmula avaliar um erro, então devolverá o texto "Esta célula não tem um tipo de dados ligado", caso contrário, devolverá "Esta célula tem um tipo de dados ligado".

Se simplesmente quer suprimir o #FIELD! erro, pode utilizar:

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

O que devolverá uma célula em branco se houver um erro.

Formatação condicional

Pode formato condicionado de uma célula com base no facto de ter ou não um tipo de dados ligado. Primeiro selecionaria as células que precisam da formatação condicional, e depois ir para casa > Formatação Condicional > Nova Regra > Usar uma fórmula... Para a fórmula, usaria o seguinte:

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

Onde a célula A1 é a célula superior do alcance que quer avaliar. Em seguida, aplique o formato que deseja.

Neste exemplo, se a célula A1 contiver um nome de campo válido para "Nome", então a fórmula devolve TRUE e formatação será aplicada. Se a célula A1 não contiver um tipo de dados ligado, então a fórmula devolve FALSO, e não será aplicada formatação. Pode remover o NOT se quiser destacar quaisquer células que não contenham tipos de dados ligados válidos.

VBA

Existem vários métodos VBA (Visual Basic for Applications) que pode utilizar para identificar se uma célula ou alcance contém tipos de dados ligados. Este primeiro procedimento utiliza a propriedade HasRichDataType

Ambos os procedimentos irão levar-lhe a selecionar um leque de células para avaliar e, em seguida, devolver uma caixa de mensagens 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 procedimento seguinte utiliza 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 snippet de código final é uma função definida pelo utilizador (UDF), e você referencia-lo como qualquer outra fórmula Excel. Basta entrar =fn_IsLinkedDataType(A1), onde A1 é a célula que pretende 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 utilizar qualquer um destes exemplos, prima alt+F11 para abrir o Visual Basic Editor (VBE), depois vá para inserir> Módulo,e colhe o código na nova janela que se abre à direita. Pode usar o Alt+Q para voltar ao Excel quando terminar. Para executar qualquer um dos dois primeiros exemplos, vá ao separador Developer> Código> Macros> selecione o macro que pretende executar a partir da lista e, em seguida, selecione Executar.

Precisa de mais ajuda?

Pode sempre perguntar a um especialista na Comunidade Tecnológica do Excel, obter suporte na Comunidade de Respostas ou sugerir uma nova funcionalidade ou melhoria no UserVoice do Excel.

Nota:  Esta página foi traduzida automaticamente e pode conter erros gramaticais ou imprecisões. O nosso objetivo é que estes conteúdos lhe sejam úteis. Pode indicar-nos se estas informações foram úteis? Eis o artigo em inglês para sua referência.​

Precisa de mais ajuda?

Aumente os seus conhecimentos do Office
Explore as formações
Seja o primeiro a obter novas funcionalidades
Adira ao Office Insider

As informações foram úteis?

Obrigado pelos seus comentários!

Obrigado pelo seu feedback! Parece que poderá ser benéfico reencaminhá-lo para um dos nossos agentes de suporte do Office.

×