若要为 Mac 删除在 Excel 中的公式链接的宏

文章翻译 文章翻译
文章编号: 192895 - 查看本文应用于的产品
有关 Microsoft Excel 97 和更早版本的这篇文章中,请参阅 126093
展开全部 | 关闭全部

本文内容

概要

当您打开包含链接到另一个工作簿的工作簿时,Microsoft Excel 将询问您是否要更新链接。如果该链接将不再引用该文件,或者它已被移动到另一个文件夹要删除链接,以避免出现此消息。

更多信息

一种最常见的链接类型是公式的链接。单元格中的链接公式可以引用一个已关闭的工作簿文件中的某个单元格。如果不再存在的文件公式不再有效。若要删除类链接 编辑 菜单并搜索 (!) 感叹号上单击 查找。 您也可以将失败此操作,如果搜索一个 ([]) 中括号。这将显示在工作表中的每个链接。然后,您可以转到每个的单元格删除了的公式,并将其替换为在单元格中的值。如果多个单元格中中包含的链接将删除该链接可能需要一些时间。若要加快删除过程,您可能希望使用下列方法之一。该宏将使您能够删除一些链接,并不是其他人。它不会删除打开的工作簿或活动工作簿中的链接。

: 如果源文件的链接位于网络驱动器上,这些宏可能不起作用。这是否大小写将找到链接,但不是删除。

Visual Basic 代码示例

Microsoft 提供的编程示例只,用于说明不附带任何明示或暗示保证。这包括,但不限于对适销性或针对特定用途的适用性的暗示的担保。本文假定您熟悉演示了正在使用的编程语言以及用于创建和调试过程的工具。Microsoft 支持工程师可以帮助解释某个特定过程的功能,但他们不会修改这些示例以提供额外的功能或构建过程来满足您的具体要求。
  1. 在一个新的模块工作表中键入下面的宏代码:
        Option Base 1
    
        'This macro deletes all formula links in a workbook.
        '
        'This macro does not delete a worksheet formula that references an open
        'book, for example:
        '
        '   =[Book1.xls]Sheet1!$A$1
        '
        ' To delete only the links in the active sheet, see the comments
        ' provided in the Delete_It macro later in this article.
    
        Public Times As Integer
        Public Link_Array As Variant
    
        Sub Should_Delete()
        Items = 0 'initialize these names
        Times = 0
        Link_Array = ActiveWorkbook.LinkSources 'find all document links
    
        Items = UBound(Link_Array) 'count the number of links
        For Times = 1 To Items
    
        'Ask whether to delete each link
        Msg = "Do you want to delete this link:  " & Link_Array(Times)
          Style = vbYesNoCancel + vbQuestion + vbDefaultButton2
          Response = MsgBox(Msg, Style)
          If Response = vbYes Then Delete_It
          If Response = vbCancel Then Times = Items
        Next Times
        End Sub
    
        Sub Delete_It()
        Count = Len(Link_Array(Times))
        For Find_Bracket = 1 To Count - 1
          If Mid(Link_Array(Times), Count - Find_Bracket, 1) = ":" _
          Then Exit For
        Next Find_Bracket
        'Add brackets around the file name.
        With_Brackets = Left(Link_Array(Times), Count - Find_Bracket) & _
          "[" & Right(Link_Array(Times), Find_Bracket) & "]"
    
        'Does the replace.
    
        'If you want to remove links only on the active sheet, change the
        'next two lines into comments by placing an (') apostrophe in front of
        'them as well as the line, "Next Sheet_Select", that closes the loop.
    
        For Each Sheet_Select In ActiveWorkbook.Worksheets
    
        Sheet_Select.Activate
        Set Found_Link = Cells.Find(what:=With_Brackets, After:=ActiveCell, _
                lookin:=xlFormulas, lookat:=xlPart, searchorder:=xlByRows, _
                searchdirection:=xlNext, matchcase:=False)
           While UCase(TypeName(Found_Link)) <> UCase("Nothing")
               Found_Link.Activate
    
               On Error GoTo anarray
    
               Found_Link.Formula = Found_Link.Value
    
               Set Found_Link = Cells.FindNext(After:=ActiveCell)
    
           Wend
        Next Sheet_Select 'To remove links only on the active sheet
                         'place an (') apostrophe at the front of this line.
    
        Exit Sub
    
        anarray:
        Selection.CurrentArray.Select
        Selection.Copy
        Selection.PasteSpecial Paste:=xlValues
        Resume Next
    
        End Sub
    					
  2. 运行 Should_Delete 宏。
  3. 标识的工作簿中的每个链接,并为每个链接都询问您是否要删除的链接。如果 单击该链接将被删除和当前单元格的值保存在每个以前链接的单元格。

属性

文章编号: 192895 - 最后修改: 2007年1月23日 - 修订: 4.4
这篇文章中的信息适用于:
  • Microsoft Excel 2004 for Mac
  • Microsoft Excel X for Mac
  • Microsoft Excel 2001 for Mac
  • Microsoft Excel 98 for Macintosh
关键字:?
kbmt kbdtacode kbhowto KB192895 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 192895
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com