打开Excel文件的时候,时常会遇到说外部链接无效的警告。
无效链接大致有这么几种方式,有的很好解决,有的可就有些费神了。
- 自定义的名字
- 函数、数式的参照
- 粘贴过来的link
- 指向图形(文本框等)、cell的link
- 图表
- 透视表
这里说第一种的解决方法。
准备工作
- 在一个excel文件(比如叫test.xlsx)中,定义了一个名字,叫“河北省”
- 2、定义一个下拉框,该下拉框的内容为列表,指向的是名字“河北省”。
- 另外新建一个excel文件(比如叫test2.xlsx),复制test.xlsx中的下拉框cell到该文件中。比如复制到了两处,C4和G4处。
- 删除test.xlsx文件,再打开test2.xlsx的时候,会报【无效链接】的错误。如果这个excel内容比较多的时候,要找到哪一些cell使用了无效链接,有些许难度的。
解决方法
- 定位是指向哪个外部文件的link失效了。点击上面的【编辑link】,可以看到是指向test.xlsx的link失效了。
- 打开格式中的【名字编辑】,可以找到是“河北省”这个名字使用到了test.xlsx。
- 将test2.xlsx备份一下,然后修改后缀名为zip。也就是修改文件名为test2.zip。然后解压。
解压以后的文件结构如下:
└─test2
│ [Content_Types].xml
│
├─docProps
│ app.xml
│ core.xml
│
├─xl
│ │ sharedStrings.xml
│ │ styles.xml
│ │ workbook.xml
│ │
│ ├─externalLinks
│ │ │ externalLink1.xml
│ │ │
│ │ └─_rels
│ │ externalLink1.xml.rels
│ │
│ ├─theme
│ │ theme1.xml
│ │
│ ├─worksheets
│ │ sheet1.xml
│ │
│ └─_rels
│ workbook.xml.rels
│
└─_rels
.rels
- 在sheet1.xml中,可以找到哪一些cell使用了“河北省”。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="x14ac" xmlns:x14ac="http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac">
<dimension ref="B2:G4"/>
<sheetViews>
<sheetView tabSelected="1" workbookViewId="0">
<selection activeCell="K7" sqref="K7"/>
</sheetView>
</sheetViews>
<sheetFormatPr defaultRowHeight="18.75" x14ac:dyDescent="0.4"/>
<cols>
<col min="3" max="3" width="11.875" bestFit="1" customWidth="1"/>
<col min="7" max="7" width="18.875" customWidth="1"/>
</cols>
<sheetData>
......
</sheetData>
<phoneticPr fontId="2"/>
<dataValidations count="3">
<dataValidation type="list" allowBlank="1"
showInputMessage="1" showErrorMessage="1" sqref="C4 G4">
<formula1>河北省</formula1>
</dataValidation>
......
</dataValidations>
<pageMargins left="0.7" right="0.7" top="0.75" bottom="0.75" header="0.3" footer="0.3"/>
</worksheet>
可以看到,sqref="C4 G4" 的地方引用了“河北省”。
我们可以断定是C4和G4这两个单元格使用了“河北省”,修改他们的值即可消除无效链接的错误。
<dataValidation type="list" allowBlank="1"
showInputMessage="1" showErrorMessage="1" sqref="C4 G4">
<formula1>河北省</formula1>
</dataValidation>
当然,如果是多个sheet的话,需要都搜索一下,看是否有这个无效的link。
汇总
引起这个问题的原因是excel复制单元格的时候,也将其使用的名字等信息也复制过来了。一般来说会有问题。
所以复制excel的时候要多加注意,避免将不必要的信息也带过来。
END!!
参考URL
https://global-wing.com/activity/de-link-error.html