ลบ phantom ลิงก์ภายนอกใน Excel


24

ฉันมีสเปรดชีต excel พร้อมกับลิงค์ภายนอกที่ฉันไม่สามารถกำจัดได้

ฉันได้อ่านบนอินเทอร์เน็ตค่อนข้างมากและMicrosoft แนะนำสิ่งต่อไปนี้ :

  • สำหรับการอ้างอิงในเซลล์:การใช้การค้นหาและแทนที่ [*] เพื่อค้นหาการอ้างอิงทั้งหมดในเซลล์แผ่นงาน
  • สำหรับการอ้างอิงในชื่อ: การเปิดตัวจัดการชื่อและทำให้แน่ใจว่าไม่มีการอ้างอิงภายนอกอยู่ที่นั่น
  • สำหรับการอ้างอิงในออบเจกต์ (เป็นสิ่งที่เจ็บปวดจริงๆ):เลือกแต่ละออบเจกต์ทีละรายการและดูในแถบสูตร
  • สำหรับการอ้างอิงในชาร์ต (เช่นเจ็บปวด):ตรวจสอบแถบสูตรชื่อและชุดข้อมูลสำหรับทุกแผนภูมิ

สิ่งนี้ยังทำให้ฉันมีการอ้างอิงจากผีภายนอกที่ฉันไม่สามารถหาได้ดังนั้นฉันจึงลองทำบางสิ่งเพิ่มเติม

  • คุณสมบัติ "Data - Edit Links" ใน Excel ตามด้วยการคลิกที่ "Break link" (ไม่มีอะไรเกิดขึ้น)
  • ใช้ปลั๊กอิน"FindLink" (ใช้งานไม่ได้สำหรับฉัน แต่ใช้งานได้ง่าย)
  • ใช้ปลั๊กอินDeleteLinksของ Microsoft (ไม่ทำงานและไม่เป็นมิตรกับผู้ใช้)

หลังจากอ่านข้อความนี้ฉันก็ลอง FindLink ด้วย มันใส่ข้อความสถานะบนแถบสถานะที่ระบุแผ่นงานที่กำลังค้นหาและให้ฉันนาฬิกาทรายและอีกหนึ่งชั่วโมงต่อมาก็ไม่มีการเปลี่ยนแปลง ไม่มีวิธีที่จะบอกได้ว่ามันถูกแขวนคอหรือช้ามาก การวนซ้ำช้านี้ต้องการตัวบ่งชี้ความคืบหน้า การกดปุ่ม Escape ค้างไว้นั้นไม่ได้เป็นการแยกออกมาโดยบอกว่าไม่มี DoEvents อยู่ในลูป ในที่สุดฉันก็สิ้นสุด Excel
Greg Lovern

1
ขอบคุณ - สิ่งที่คุณเขียนในคำถามนั้นมีประโยชน์จริง ๆ และคำตอบอื่น ๆ ก็ให้เช่นกัน ฉันสังเกตว่ากล่องแก้ไขลิงค์ยังคงแสดงลิงก์หลังจากลองทุกอย่าง แต่การปิดและเปิดเวิร์กบุ๊กนั้นเป็นการหลอกลวง - ลิงก์ทั้งหมดถูกนำออก!
dunxd

คำตอบ:


27

สำหรับผู้อื่นที่ใช้เวลาหลายชั่วโมงในการรวบรวมไฟล์ปัญหาอาจเกิดขึ้นได้หากคุณคัดลอกช่วงการตรวจสอบความถูกต้องของข้อมูลจากเวิร์กบุ๊กอื่น

วิธีแก้ไข:

Ribbon -> ไฟล์ -> ตรวจสอบปัญหา -> ตรวจสอบความเข้ากันได้

สิ่งนี้จะนำตัวตรวจสอบที่จะบอกคุณว่าการตรวจสอบความถูกต้องชี้ไปที่แผ่นงานภายนอกหรือไม่

สิ่งสำคัญที่สุดคือมันจะบอกคุณว่าแผ่นมันอยู่บน

อย่างไรก็ตามเมื่อคุณทราบแผ่นงานไปที่แผ่นงาน ตอนนี้

Ribbon -> Home -> ลูกศรลงถัดจากค้นหาและเลือก -> การตรวจสอบความถูกต้องของข้อมูล

นี่จะเป็นการเลือกเซลล์ที่มีการตรวจสอบความถูกต้องของข้อมูล

ตอนนี้

Ribbon -> Data -> การตรวจสอบความถูกต้องของข้อมูล

และแก้ไขการอ้างอิงที่เสียหายในช่อง "แหล่งที่มา" หรือคลิก "ล้างทั้งหมด" หากคุณไม่ต้องการ


สำหรับผู้ที่ใช้ Mac (ฉันใช้ Excel v15.37) มาโครในหน้านี้ ( dailydoseofexcel.com/archives/2009/05/04/ ...... ) ทำงานเพื่อค้นหาลิงก์ในการตรวจสอบข้อมูล คุณอาจต้องแก้ไขคำพูดทั้งหมดหลังจากที่คุณคัดลอกและวาง
KJH

ฉันไม่เคยเดาได้เลยว่าลิงก์ที่ใช้งานไม่ได้ถูกซ่อนอยู่ในการตรวจสอบความถูกต้องของข้อมูล ขอบคุณ !!!
Sean McCarthy

12

ในที่สุดฉันก็ติดตามสิ่งนี้ตามกฎการจัดรูปแบบตามเงื่อนไข

คลิกที่ "หน้าแรก - การจัดรูปแบบตามเงื่อนไข - จัดการกฎ" จะแสดงกล่องโต้ตอบต่อไปนี้ซึ่งค่อนข้างง่ายต่อการค้นหาและแทนที่การอ้างอิงภายนอก

ป้อนคำอธิบายรูปภาพที่นี่


ขอบคุณสำหรับสิ่งนี้. มันเกิดขึ้นโดยบังเอิญและทำให้ฉันบ้ามาก!
Greg Lyon

1
อีกที่ที่ควรตรวจสอบคือ "ชื่อที่กำหนด" (สูตร -> ตัวจัดการชื่อ)
lsowen

2
ฉันมีสเปรดชีตที่มีการจัดรูปแบบตามเงื่อนไขหลายร้อยรายการ & กฎไม่ได้แสดงว่าเป็นการอ้างอิงไฟล์ภายนอก ฉันพบพวกเขาโดยเปลี่ยนชื่อ. XLSX เป็น. ซิปเปิดไฟล์. zip \ xl \ worksheets \ sheet1.xml ค้นหาเส้นทางของไฟล์ & สังเกตตำแหน่งของเซลล์จากนั้นใช้ตัวจัดการกฎเพื่อค้นหา & ลบ คุณสามารถคัดลอกไฟล์แล้วลบกฎทั้งหมดบันทึกปิด & เปิดอีกครั้งเพื่อแยกออกหากแผ่นงาน / แท็บนั้นทำให้เกิดปัญหาของคุณ การอ้างอิง: superuser.com/a/957178/160219 superuser.com/a/1081277/160219 superuser.com/a/1134500/160219
gregg

ในกรณีของฉันไม่มีวิธีแก้ไขปัญหาที่โพสต์ทำงานให้ฉัน ในที่สุดฉันก็ค้นพบโดยการกำจัดแผ่นงานที่มีปุ่มรูปแบบเหมือนกันทั้งหมดวางซ้อนกันอยู่ด้านบนของอีกแผ่นด้วยการกำหนดให้กับสมุดงานภายนอก นี่เป็นเพราะผู้ใช้คัดลอกแผ่นงานจากสมุดงานอื่น ทั้งบ่ายสูญเปล่า - ยกเว้นประสบการณ์!
DaveU

3

หากเวิร์กบุ๊กมีขนาดใหญ่ไม่ใช่เรื่องง่ายในการค้นหาเงื่อนไขการจัดรูปแบบที่มีการอ้างอิงภายนอก ฉันเขียนฟังก์ชัน VBA นี้เพื่อค้นหา จำกัด 80 คอลัมน์และ 500 แถวเพื่อลดเวลาดำเนินการ เมื่อฟังก์ชั่นหยุดคุณสามารถตรวจสอบตำแหน่งถาม:

 ?foglio.name
 ?cella.row
 ?cella.column

    Public Function CercaLink()
    Dim Cella As Object, i&, Foglio As Object
    For Each Foglio In ActiveWorkbook.Sheets
       ActiveWorkbook.Sheets(Foglio.Name).Select
       For Each Cella In ActiveSheet.Cells
         If Cella.Column < 80 Then
           If Cella.FormatConditions.Count > 0 Then
              For i = 1 To Cella.FormatConditions.Count
                 If InStr(1, Cella.FormatConditions(i).Formula1, ":\") > 0 Then Stop
              Next
           End If
        End If
        If Cella.Row > 500 Then Exit For
     Next
  Next
  End Function
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.