Start » VBA-Ejemplos » Macro VBA para eliminar vínculos Excel

Macro VBA para eliminar vínculos Excel

Con esta macro podrás eliminar vínculos a otras hojas/libros.

  • Elimina vínculos a otras hojas/libros
  • Referencias dentro de la hoja se mantienen.
  • Los vínculos se convierten en valores.
  • Antes de todo, ¡recuerda hacer una copia de seguridad!

Copia de seguridad

Guarda una copia de seguridad de tu libro. Hazlo porque nunca sabes.

Crear el módulo

Entra a Herramientas - Macros - Editor VBA. A la izquierda ves (si no lo ves CTRL+R) algo como "ProyectoVBA (Tu libro). Marca ese proyecto. Insertar - Módulo.

Doble click en el módulo nuevo, y a la derecha sale un espacio blanco, es para el código. Herramientas - Referencias. Marca Microsoft ActiveX DataObjects x.x Library.
Ahora cierras el editor VBA, vuelves a Excel. Guardamos el libro.

El código

Sub QuitarVinculos()

Dim varVinculo As Variant
Dim wrsHoja As Worksheet
Dim objCelda As Object
Dim varMsg As Variant

'(0) Un pequeño control
varMsg = MsgBox("¿Ha guardado una copia de seguridad?", vbYesNo)
If varMsg = 7 Then Exit Sub

'(1) Quitar vínculos externos (a otros libros)
varLink = ActiveWorkbook.LinkSources(Type:=xlLinkTypeExcelLinks)
If Not IsEmpty(varLink) Then

i = 1
Do Until IsEmpty(varLink)
On Error GoTo 9
ActiveWorkbook.BreakLink Name:=varLink(i), _
Type:=xlLinkTypeExcelLinks
i = i + 1
Loop
End If
9:

'(2) Quitar vínculos internos (a otras hojas)
On Error Resume Next
For Each wrsHoja In ActiveWorkbook.Worksheets

For Each objCelda In wrsHoja.UsedRange.SpecialCells(xlCellTypeFormulas, 23)
If InStr(objCelda.Formula, "!") Then objCelda.Value = objCelda.Value
Next
Next

End Sub