ชนิดข้อมูลที่ลิงก์ถูกนำออกใช้ก่อนใน Excel for Microsoft 365 ในเดือนมิถุนายน๒๐๑๘และเช่นฟีเจอร์อื่นๆอาจไม่สามารถระบุได้ ซึ่งอาจเป็นจริงโดยเฉพาะอย่างยิ่งเมื่อคุณต้องการใช้ฟีเจอร์อื่นๆในการเงื่อนไขระบุว่าเซลล์นั้นมีชนิดข้อมูลที่เชื่อมโยงอยู่หรือไม่ บทความนี้จะอธิบายถึงการแก้ไขปัญหาบางอย่างที่คุณสามารถใช้เพื่อระบุชนิดข้อมูลที่ลิงก์ในเซลล์
หมายเหตุ: ชนิดข้อมูลที่มีการเชื่อมโยงจะพร้อมใช้งานสำหรับไคลเอ็นต์ผู้เช่าหลายรายทั่วโลก (บัญชี Microsoft 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ได้เสมอ
หมายเหตุ: หน้านี้ได้รับการแปลด้วยระบบอัตโนมัติ และอาจมีข้อผิดพลาดทางไวยากรณ์หรือความไม่ถูกต้อง จุดประสงค์ของเราคือเพื่อให้เนื้อหานี้มีประโยชน์กับคุณ คุณสามารถแจ้งให้เราทราบว่าข้อมูลมีประโยชน์หรือไม่ นี่คือบทความภาษาอังกฤษเพื่อให้คุณใช้อ้างอิง