你目前正处于脱机状态,正在等待 Internet 重新连接

若要为 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. 标识的工作簿中的每个链接,并为每个链接都询问您是否要删除的链接。如果 单击该链接将被删除和当前单元格的值保存在每个以前链接的单元格。
MacXLX XL2001 XL98

警告:本文已自动翻译

属性

文章 ID:192895 - 上次审阅时间:12/05/2015 09:18:37 - 修订版本: 4.4

Microsoft Excel 2004 for Mac, Microsoft Excel X for Mac, Microsoft Excel 2001 for Mac, Microsoft Excel 98 for Macintosh

  • kbnosurvey kbarchive kbmt kbdtacode kbhowto KB192895 KbMtzh
反馈