Macros para eliminar vínculos fórmulas en Excel para Mac

Seleccione idioma Seleccione idioma
Id. de artículo: 192895 - Ver los productos a los que se aplica este artículo
Para un Microsoft Excel 97 y la versión anterior de este artículo, consulte 126093.
Expandir todo | Contraer todo

En esta página

Resumen

Cuando abre un libro que contiene vínculos a otro libro, Microsoft Excel le pregunta si desea actualizar vínculos. Si el archivo que el vínculo se refiere a ya no existe o si se ha movido a una carpeta diferente, quizás desee eliminar los vínculos para evitar este mensaje.

Más información

Uno de los tipos de vínculo más comunes es un vínculo de fórmula. Una fórmula de vínculo en una celda puede hacer referencia a una celda en un archivo de libro cerrado. Si ya no existe ese archivo, la fórmula ya no es válida. Para eliminar dicho vínculo, haga clic en Buscar en el menú Edición y busque un signo de exclamación (!). O bien, si falla esta acción, buscar un corchete ([]). Esto mostrará cada vínculo en una hoja. Puede ir a cada celda, elimine la fórmula y reemplácelo con el valor que aparecía en la celda. Si varias celdas contienen vínculos, al eliminar los vínculos, puede llevar algún tiempo. Para acelerar el proceso de eliminación, puede que desee utilizar uno de los métodos siguientes. Las macros permiten eliminar algunos vínculos y otras no. No se eliminan vínculos a libros que están abiertos o dentro del libro activo.

Nota : estas macros pueden no funcionar si el archivo de origen para un vínculo se encuentra en una unidad de red. Si éste es el caso, el vínculo se encuentra pero no se eliminarán.

Ejemplo de código de Visual Basic

Microsoft proporciona ejemplos de programación con fines ilustrativos únicamente, sin ninguna garantía tanto expresa como implícita. Esto incluye, entre otras, las garantías implícitas de comerciabilidad e idoneidad para un fin determinado. Este artículo se supone que está familiarizado con el lenguaje de programación que se muestra y con las herramientas que se utilizan para crear y depurar procedimientos. Los ingenieros de soporte técnico de Microsoft pueden explicarle la funcionalidad de un determinado procedimiento, pero no modificarán estos ejemplos para ofrecer mayor funcionalidad ni crearán procedimientos que cumplan sus requisitos específicos.
  1. Escriba el siguiente código de macro en una nueva hoja de módulo:
        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. Ejecute la macro Should_Delete.
  3. Se identifica cada vínculo en el libro y para cada vínculo se le pregunte si desea eliminar el vínculo. Si hace clic en , se elimina el vínculo y el valor de celda actual se guarda en cada una de las celdas que anteriormente estaban vinculadas.

Propiedades

Id. de artículo: 192895 - Última revisión: martes, 23 de enero de 2007 - Versión: 4.4
La información de este artículo se refiere a:
  • Microsoft Excel 2004 for Mac
  • Microsoft Excel X para Macintosh
  • Microsoft Excel 2001 para Macintosh
  • Microsoft Excel 98 para Macintosh
Palabras clave: 
kbmt kbdtacode kbhowto KB192895 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 192895

Enviar comentarios

 

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