ข้ามไปที่เนื้อหาหลัก
การสนับสนุน
ลงชื่อเข้าใช้
ลงชื่อเข้าใช้ด้วย Microsoft
ลงชื่อเข้าใช้หรือสร้างบัญชี
สวัสดี
เลือกบัญชีอื่น
คุณมีหลายบัญชี
เลือกบัญชีที่คุณต้องการลงชื่อเข้าใช้

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

หมายเหตุ: ชนิดข้อมูลที่ลิงก์จะพร้อมใช้งานเฉพาะกับลูกค้าแบบหลายผู้เช่าทั่วโลก (บัญชี Microsoft 365 มาตรฐาน)

สูตร

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

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

=FIELDVALU1(A1,"ชื่อ")

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

=IF(ISERROR(FIELDVALU1(A2,"Name")),"เซลล์นี้ไม่มีชนิดข้อมูลเชื่อมโยง","เซลล์นี้มีชนิดข้อมูลเชื่อมโยง")

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

ถ้าคุณเพียงต้องการระงับ#FIELD! คุณสามารถใช้:

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

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

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

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

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

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

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

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

กระบวนงานถัดไปนี้ใช้คุณสมบัติ LinkedDataTypeStat1

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อีกครั้งเมื่อคุณเสร็จสิ้น เมื่อต้องการเรียกใช้ตัวอย่างใดตัวอย่างหนึ่งในสองตัวอย่างแรก ให้ไปที่แท็บ นักพัฒนา >Code > Macros > เลือกแมโครที่คุณต้องการเรียกใช้จากรายการ แล้วเลือกเรียกใช้

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

คุณสามารถสอบถามผู้เชี่ยวชาญใน Excel Tech Community หรือรับการสนับสนุนใน ชุมชน

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

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

สํารวจสิทธิประโยชน์ของการสมัครใช้งาน เรียกดูหลักสูตรการฝึกอบรม เรียนรู้วิธีการรักษาความปลอดภัยอุปกรณ์ของคุณ และอื่นๆ

ชุมชนช่วยให้คุณถามและตอบคําถาม ให้คําติชม และรับฟังจากผู้เชี่ยวชาญที่มีความรู้มากมาย

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

คุณพึงพอใจกับคุณภาพภาษาเพียงใด
สิ่งที่ส่งผลต่อประสบการณ์ใช้งานของคุณ
เมื่อกดส่ง คำติชมของคุณจะถูกใช้เพื่อปรับปรุงผลิตภัณฑ์และบริการของ Microsoft ผู้ดูแลระบบ IT ของคุณจะสามารถรวบรวมข้อมูลนี้ได้ นโยบายความเป็นส่วนตัว

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

×