若要刪除 Excel 中的公式連結 Mac 的巨集

文章翻譯 文章翻譯
文章編號: 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 Macintosh
  • Microsoft Excel 98 for Macintosh
關鍵字:?
kbmt kbdtacode kbhowto KB192895 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本: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