ข้ามไปที่เนื้อหาหลัก
Office

การใช้ฟีเจอร์อื่นๆเพื่อระบุชนิดข้อมูลที่ลิงก์

ชนิดข้อมูลที่มีการเชื่อมโยงถูกนำออกใช้ในExcel for Office 365 ในเดือนมิถุนายน๒๐๑๘และเช่นฟีเจอร์อื่นๆอาจไม่สามารถระบุได้ ซึ่งอาจเป็นจริงโดยเฉพาะอย่างยิ่งเมื่อคุณต้องการใช้ฟีเจอร์อื่นๆในการเงื่อนไขระบุว่าเซลล์นั้นมีชนิดข้อมูลที่เชื่อมโยงอยู่หรือไม่ บทความนี้จะอธิบายถึงการแก้ไขปัญหาบางอย่างที่คุณสามารถใช้เพื่อระบุชนิดข้อมูลที่ลิงก์ในเซลล์

สูตร

คุณสามารถเขียนสูตรที่อ้างอิงชนิดข้อมูลได้เสมอ อย่างไรก็ตามถ้าคุณต้องการแยกข้อความของเซลล์ที่มีชนิดข้อมูลที่มีการเชื่อมโยงโดยใช้ฟังก์ชัน TEXT คุณจะได้รับ #VALUE! เป็นข้อผิดพลาด

วิธีแก้ไขปัญหาชั่วคราวคือการใช้ฟังก์ชันFIELDVALUEและระบุเขตข้อมูลชื่อสำหรับอาร์กิวเมนต์field_name ในตัวอย่างต่อไปนี้ถ้าเซลล์ A1 มีชนิดข้อมูลหุ้นแล้วสูตรจะส่งกลับชื่อหุ้น

= FIELDVALUE (A1, "Name")

อย่างไรก็ตามถ้าเซลล์ A1 ไม่มีชนิดข้อมูลที่มีการเชื่อมโยงฟังก์ชัน FIELDVALUE จะส่งกลับข้อผิดพลาด #FIELD!. ถ้าคุณต้องการประเมินว่าเซลล์นั้นมีชนิดข้อมูลที่เชื่อมโยงอยู่หรือไม่คุณสามารถใช้สูตรต่อไปนี้ซึ่งจะใช้ฟังก์ชัน ISERROR เพื่อทดสอบว่าฟังก์ชัน FIELDVALUE จะส่งกลับข้อผิดพลาดหรือไม่

= IF (ISERROR (FIELDVALUE (A2, "Name")), "เซลล์นี้ไม่มีชนิดข้อมูลที่ลิงก์" "เซลล์นี้มีชนิดข้อมูลที่ลิงก์")

ถ้าสูตรประเมินเป็นข้อผิดพลาดจากนั้นจะส่งกลับข้อความ "เซลล์นี้ไม่มีชนิดข้อมูลที่ลิงก์" มิฉะนั้นจะส่งกลับค่า "เซลล์นี้มีชนิดข้อมูลที่ลิงก์"

ถ้าคุณเพียงแค่ต้องการที่จะระงับ #FIELD! ข้อผิดพลาดคุณสามารถใช้:

= IFERROR (FIELDVALUE (A1, "ชื่อ"), "")

ซึ่งจะส่งกลับเซลล์ว่างถ้ามีข้อผิดพลาด

การจัดรูปแบบตามเงื่อนไข

คุณสามารถเงื่อนไขจัดรูปแบบเซลล์โดยยึดตามว่ามีชนิดข้อมูลที่เชื่อมโยงอยู่หรือไม่ ก่อนอื่นคุณต้องเลือกเซลล์ที่จำเป็นต้องมีการจัดรูปแบบตามเงื่อนไขแล้วไปที่หน้าแรก> การจัดรูปแบบตามเงื่อนไข>กฎใหม่>ใช้สูตร... สำหรับสูตรที่คุณต้องการใช้ต่อไปนี้:

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

เซลล์ A1 คือเซลล์บนสุดในช่วงที่คุณต้องการประเมิน จากนั้นนำการจัดรูปแบบที่คุณต้องการไปใช้

ในตัวอย่างนี้ถ้าเซลล์ A1 มีชื่อเขตข้อมูลที่ถูกต้องสำหรับ "Name" จากนั้นสูตรจะส่งกลับค่า TRUE และการจัดรูปแบบจะถูกนำไปใช้ ถ้าเซลล์ A1 ไม่มีชนิดข้อมูลที่เชื่อมโยงแล้วสูตรจะส่งกลับค่า FALSE และไม่มีการนำการจัดรูปแบบไปใช้ คุณสามารถเอาออกไม่ได้ถ้าคุณต้องการเน้นเซลล์ใดๆที่ไม่มีชนิดข้อมูลที่ลิงก์ที่ถูกต้องแทน

VBA

มีวิธีการหลาย VBA (Visual Basic for Applications) ที่คุณสามารถใช้เพื่อระบุว่าเซลล์หรือช่วงมีชนิดข้อมูลที่เชื่อมโยงอยู่หรือไม่ กระบวนงานแรกนี้ใช้คุณสมบัติ HasRichDataType 

ทั้งสองขั้นตอนเหล่านี้จะพร้อมท์ให้คุณเลือกช่วงของเซลล์ที่จะประเมินแล้วส่งกลับกล่องข้อความที่มีผลลัพธ์

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

กระบวนงานถัดไปนี้ใช้คุณสมบัติ 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

ส่วนย่อยของโค้ดสุดท้ายนี้คือฟังก์ชันที่ผู้ใช้กำหนดเอง (UDF) และคุณอ้างอิงเช่นเดียวกับสูตร Excel อื่นๆ เพียงแค่ใส่ =fn_IsLinkedDataType (a1)ซึ่ง A1 คือเซลล์ที่คุณต้องการประเมิน

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

เมื่อต้องการใช้ตัวอย่างเหล่านี้ให้กดAlt + F11เพื่อเปิด Visual Basic EDITOR (VBE) แล้วไปที่แทรกโมดูลของ> แล้ววางโค้ดในหน้าต่างใหม่ที่เปิดขึ้นทางด้านขวา คุณสามารถใช้Alt + Qเพื่อออกจากระบบกลับไปยัง Excel เมื่อคุณทำเสร็จแล้ว เมื่อต้องการเรียกใช้อย่างใดอย่างหนึ่งในสองตัวอย่างแรกให้ไปที่แท็บนักพัฒนา>โค้ด>แมโคร> เลือกแมโครที่คุณต้องการเรียกใช้จากรายการแล้วเลือกเรียกใช้

ต้องการความช่วยเหลือเพิ่มเติมไหม

คุณสามารถสอบถามผู้เชี่ยวชาญใน Excel Tech Community ขอความช่วยเหลือใน Answers community หรือแนะนำฟีเจอร์ใหม่หรือการปรับปรุงบน Excel User Voiceได้เสมอ

ขยายทักษะ Office ของคุณ
สำรวจการฝึกอบรม
รับฟีเจอร์ใหม่ก่อนใคร
เข้าร่วม Office Insider

ข้อมูลนี้เป็นประโยชน์หรือไม่

ขอบคุณสำหรับคำติชมของคุณ!

ขอขอบคุณสำหรับคำติชมของคุณ! เราคิดว่าอาจเป็นประโยชน์ที่จะให้คุณได้ติดต่อกับหนึ่งในตัวแทนฝ่ายสนับสนุน Office ของเรา

×