ชนิดข้อมูลที่ลิงก์ถูกเผยแพร่เป็นครั้งแรกใน Excel for Microsoft 365 ในเดือนมิถุนายน 2018 และด้วยเหตุนี้ ฟีเจอร์อื่นๆ อาจไม่สามารถระบุได้ ซึ่งอาจเป็นจริงโดยเฉพาะอย่างยิ่งเมื่อคุณต้องการใช้ฟีเจอร์อื่นๆ เพื่อระบุตามเงื่อนไขว่าเซลล์มีชนิดข้อมูลที่ลิงก์หรือไม่ บทความนี้จะอธิบายวิธีแก้ไขปัญหาชั่วคราวบางอย่างที่คุณสามารถใช้เพื่อระบุชนิดข้อมูลที่ลิงก์ในเซลล์
หมายเหตุ
ชนิดข้อมูลที่ลิงก์จะพร้อมใช้งานสําหรับไคลเอ็นต์หลายผู้เช่าทั่วโลก (บัญชี Microsoft 365 มาตรฐาน) เท่านั้น
สูตร
คุณสามารถ เขียนสูตรที่อ้างอิงชนิดข้อมูลได้เสมอ อย่างไรก็ตาม ถ้าคุณต้องการแยกข้อความของเซลล์ที่มีชนิดข้อมูลเชื่อมโยงโดยใช้ฟังก์ชัน TEXT คุณจะได้รับ #VALUE! ข้อผิดพลาด
วิธีแก้ไขปัญหาคือการใช้ฟังก์ชัน FIELDVALUE และระบุเขตข้อมูล Name สําหรับอาร์กิวเมนต์ field_name ในตัวอย่างต่อไปนี้ ถ้าเซลล์ A1 มีชนิดข้อมูลหุ้น สูตรจะส่งกลับชื่อหุ้น
=FIELDVALUE(A1,"Name")
อย่างไรก็ตาม ถ้าเซลล์ A1 ไม่มีชนิดข้อมูลเชื่อมโยง ฟังก์ชัน FIELDVALUE จะส่งกลับข้อผิดพลาด #FIELD! ถ้าคุณต้องการประเมินว่าเซลล์มีชนิดข้อมูลที่ลิงก์หรือไม่ คุณสามารถใช้สูตรต่อไปนี้ ซึ่งใช้ฟังก์ชัน ISERROR เพื่อทดสอบว่าฟังก์ชัน FIELDVALUE จะส่งกลับข้อผิดพลาดหรือไม่
=IF(ISERROR(FIELDVALUE(A2,"Name")),"เซลล์นี้ไม่มีชนิดข้อมูลที่ลิงก์","เซลล์นี้มีชนิดข้อมูลที่ลิงก์")
ถ้าสูตรประเมินเป็นข้อผิดพลาด สูตรจะส่งกลับข้อความ "เซลล์นี้ไม่มีชนิดข้อมูลที่ลิงก์" มิฉะนั้นสูตรจะส่งกลับ "เซลล์นี้มีชนิดข้อมูลที่ลิงก์"
หากคุณเพียงต้องการระงับ #FIELD! คุณสามารถใช้:
=IFERROR(FIELDVALUE(A1,"ชื่อ"),"")
ซึ่งจะส่งกลับเซลล์ว่างถ้ามีข้อผิดพลาด
การจัดรูปแบบตามเงื่อนไข
คุณสามารถ จัดรูปแบบเซลล์ตามเงื่อนไข โดยยึดตามว่าเซลล์นั้นมีชนิดข้อมูลที่ลิงก์หรือไม่ ก่อนอื่นคุณต้องเลือกเซลล์ที่ต้องการการจัดรูปแบบตามเงื่อนไข แล้วไปที่กฎ>ใหม่สําหรับการจัดรูปแบบ>ตามเงื่อนไขหน้าแรก>ใช้สูตร... สําหรับสูตร คุณต้องใช้สิ่งต่อไปนี้:
=NOT(ISERROR(FIELDVALUE(A1,"ชื่อ")))
โดยที่เซลล์ 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
กระบวนงานถัดไปนี้ใช้คุณสมบัติ 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 หรือรับการสนับสนุนใน ชุมชนได้เสมอ