Excel中的无效链接(1)

December 09, 2023
测试
测试
测试
测试
7 分钟阅读

打开Excel文件的时候,时常会遇到说外部链接无效的警告。

无效链接大致有这么几种方式,有的很好解决,有的可就有些费神了。

  • 自定义的名字
  • 函数、数式的参照
  • 粘贴过来的link
  • 指向图形(文本框等)、cell的link
  • 图表
  • 透视表

这里说第一种的解决方法。

准备工作

  • 在一个excel文件(比如叫test.xlsx)中,定义了一个名字,叫“河北省”
定义了一个名字叫“河北省”
定义了一个名字叫“河北省”
  • 2、定义一个下拉框,该下拉框的内容为列表,指向的是名字“河北省”。
使用“河北省”这个名字
使用“河北省”这个名字
  • 另外新建一个excel文件(比如叫test2.xlsx),复制test.xlsx中的下拉框cell到该文件中。比如复制到了两处,C4和G4处。

复制下拉框的cell
复制下拉框的cell
  • 删除test.xlsx文件,再打开test2.xlsx的时候,会报【无效链接】的错误。如果这个excel内容比较多的时候,要找到哪一些cell使用了无效链接,有些许难度的。

无效链接错误
无效链接错误

解决方法

  • 定位是指向哪个外部文件的link失效了。点击上面的【编辑link】,可以看到是指向test.xlsx的link失效了。
link失效的具体内容
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

继续阅读

更多来自我们博客的帖子

如何安装 BuddyPress
由 测试 December 17, 2023
经过差不多一年的开发,BuddyPress 这个基于 WordPress Mu 的 SNS 插件正式版终于发布了。BuddyPress...
阅读更多
Filter如何工作
由 测试 December 17, 2023
在 web.xml...
阅读更多
如何理解CGAffineTransform
由 测试 December 17, 2023
CGAffineTransform A structure for holding an affine transformation matrix. ...
阅读更多