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
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


