【问题标题】:How to find location of link in Excel workbook?如何在 Excel 工作簿中找到链接的位置?
【发布时间】:2015-03-07 03:46:19
【问题描述】:

我有一本 Excel 书,打开时会发出警告:

This workbook contains links to other data sources.

我想删除所有这些链接,以免触发警告。认为任何外部链接都将采用'[workbook path]'!address 的形式,我使用了以下代码:

Sub ListLinks()
Dim wb As Workbook
Dim link As Variant
Set wb = ThisWorkbook
For Each link In wb.LinkSources(xlExcelLinks)
    Debug.Print link
Next link

End Sub

这返回了一个文件路径:

\\somePath\xyz\aWorkbook.xlsm

我使用 Ctrl+F 在工作簿中的所有公式中搜索此字符串,但未返回任何结果。如何找到并删除此链接?

【问题讨论】:

  • 它不一定是公式中的链接,它可以是整个工作表或书籍链接到数据库文件。

标签: vba excel


【解决方案1】:

您的工作簿可能通过指向另一个工作簿的命名范围进行链接。搜索链接工作簿的公式可能一无所获,因为链接隐藏在名称中。

检查您的命名范围是否有指向其他工作簿的链接。

【讨论】:

    【解决方案2】:

    断开链接不足以抑制警告。在 Edit Links 窗口中,我单击 Startup Prompt 并将单选按钮设置为“不显示警报并且不更新自动链接”。这成功地阻止了警告的出现。

    【讨论】:

      【解决方案3】:

      下面的循环应该可以工作。

      Dim intCounter As Integer
      Dim varLink As Variant
      
      'Define variable as an Excel link type.
      varLink = ActiveWorkbook.LinkSources(Type:=xlLinkTypeExcelLinks)
      
      'Are there any links?
      If IsArray(varLink) = False Then
          Exit Sub
      End If
      
      'Break the links in the active workbook.
      For intCounter = 1 To UBound(varLink)
          ActiveWorkbook.BreakLink _
          Name:=varLink(intCounter), _
          Type:=xlLinkTypeExcelLinks
      Next intCounter
      

      【讨论】:

      • 我运行了它,保存并关闭了工作簿,当我重新打开它时再次收到警告。
      • 您是否检查过数据连接以查看是否存在与@Chrismas007 提到的数据库的连接。
      【解决方案4】:

      我在删除上述所有链接后遇到了这个问题,然后我发现我的一些验证数据引用了其他工作簿。改正后问题就消失了。

      【讨论】:

        【解决方案5】:

        可能是其中之一?:

        • 超链接(公式和普通)
        • 名称经理
        • 验证
        • 条件格式
        • 带宏的按钮(仍指向原始宏)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-01-24
          • 2014-01-28
          相关资源
          最近更新 更多