Przejdź do głównej zawartości
Pomoc techniczna
Zaloguj się przy użyciu konta Microsoft
Zaloguj się lub utwórz konto.
Witaj,
Wybierz inne konto.
Masz wiele kont
Wybierz konto, za pomocą którego chcesz się zalogować.

Typy połączonych danych opublikowano po raz Excel dla Microsoft 365 czerwca 2018 r. i w związku z tym inne funkcje mogą nie być w stanie ich zidentyfikować. Może to być szczególnie przydatne, gdy chcesz użyć innych funkcji w celu warunkowego określenia, czy komórka zawiera połączony typ danych. W tym artykule wyjaśniono niektóre obejścia, które można stosować do identyfikowania typów połączonych danych w komórkach.

Uwaga: Typy połączonych danych są dostępne tylko dla klientów z wieloma dzierżawami na całym świecie (standardowych Microsoft 365 klientów).

Formuły

Zawsze możesz pisać formuły odwołujące się do typów danych. Jeśli jednak chcesz wyodrębnić tekst komórki z połączonym typem danych przy użyciu funkcji TEKST, otrzymasz #VALUE! .

Obejściem tego problemu jest użycie funkcji POLE.WARTOŚĆ i określenie pola Name(Nazwa) field_name argumentu. W poniższym przykładzie, jeśli komórka A1 zawierała typ danych akcji, formuła zwróci nazwę akcji.

=POLE.WARTOŚĆ(A1;"Nazwa")

Jeśli jednak komórka A1 nie zawiera połączonego typu danych, funkcja POLE.WARTOŚĆ zwróci błąd #FIELD!. Jeśli chcesz sprawdzić, czy komórka zawiera połączony typ danych, możesz użyć następującej formuły, która korzysta z funkcji CZY.BŁĄD w celu przetestowania, czy funkcja POLE.WARTOŚĆ zwróci błąd.

=JEŻELI(CZY.BŁ(POLE.WARTOŚĆ(A2;"Nazwa"));"Ta komórka nie ma połączonego typu danych","Ta komórka ma połączony typ danych")

Jeśli formuła zwróci błąd, zwróci tekst "Ta komórka nie ma połączonego typu danych", w przeciwnym razie zwróci tekst "Ta komórka ma połączony typ danych".

Jeśli chcesz po prostu pominąć #FIELD! można użyć:

=JEŻELI.WARTOŚĆ(POLE.WARTOŚĆ(A1;"Nazwa")"")

Co spowoduje zwrócenie pustej komórki w przypadku wystąpienia błędu.

Formatowanie warunkowe

Komórkę można formatować warunkowo w zależności od tego, czy ma ona połączony typ danych. Najpierw zaznacz komórki, które wymagają formatowania warunkowego, a następnie przejdź do strony Narzędzia > Formatowanie warunkowe > Nowa reguła > Użyj formuły... W formule można użyć następujących formuł:

=NIE(CZY.BŁ(POLE.WARTOŚĆ(A1;"Nazwa")))

Komórka A1 to górna komórka w zakresie, który ma zostać oszacowany. Następnie zastosuj format, który chcesz zastosować.

W tym przykładzie, jeśli komórka A1 zawiera prawidłową nazwę pola "Nazwa", formuła zwróci wartość PRAWDA i zostanie zastosowane formatowanie. Jeśli komórka A1 nie zawiera połączonego typu danych, formuła zwraca wartość FAŁSZ i nie zostanie zastosowane żadne formatowanie. Możesz usunąć notę NOT, jeśli chcesz wyróżnić komórki, które nie zawierają prawidłowych połączonych typów danych.

VBA

Istnieje kilka metod VBA (Visual Basic for Applications) w celu ustalenia, czy komórka lub zakres zawiera połączone typy danych. W tej pierwszej procedurze użyto właściwości HasRichDataType. 

W obu tych procedurach zostanie wyświetlony monit o wybranie zakresu komórek do oceny, a następnie zwrócenie okna komunikatu z wynikami.

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

W następnej procedurze użyto właściwości 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

Ten końcowy fragment kodu to funkcja zdefiniowana przez użytkownika (UDF) i odwołanie do niego jest podobne jak każda Excel formuła. Wystarczy wprowadzić =fn_IsLinkedDataType(A1), gdzie A1 jest komórką, którą chcesz oszacować.

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

Aby użyć dowolnego z tych przykładów, naciśnij klawisze Alt+F11 w celu otwarcia Edytora Visual Basic (VBE), a następnie przejdź do polecenia Wstaw moduł> iwklej kod w nowym oknie, które zostanie otwarte po prawej stronie. Możesz użyć klawiszy Alt+Q, aby zamknąć Excel, gdy to zrobisz. Aby uruchomić jeden z dwóch pierwszych przykładów, przejdź do karty Deweloper> Kod > Makra > wybierz z listy makro, które chcesz uruchomić, a następnie wybierz pozycję Uruchom.

Potrzebujesz dodatkowej pomocy?

Zawsze możesz zadać pytanie ekspertowi w społeczności technicznej programu Excel lub uzyskać pomoc techniczną w Społecznościach.

Potrzebujesz dalszej pomocy?

Chcesz uzyskać więcej opcji?

Poznaj korzyści z subskrypcji, przeglądaj kursy szkoleniowe, dowiedz się, jak zabezpieczyć urządzenie i nie tylko.

Społeczności pomagają zadawać i odpowiadać na pytania, przekazywać opinie i słuchać ekspertów z bogatą wiedzą.

Czy te informacje były pomocne?

Jaka jest jakość języka?
Co wpłynęło na Twoje wrażenia?
Jeśli naciśniesz pozycję „Wyślij”, Twoja opinia zostanie użyta do ulepszania produktów i usług firmy Microsoft. Twój administrator IT będzie mógł gromadzić te dane. Oświadczenie o ochronie prywatności.

Dziękujemy za opinię!

×