Tengo los siguientes enlaces a Excel en un documento de Word:
El problema es que cuando se realizan cambios, la versión del documento tanto en la hoja de Excel a la que se hace referencia como en el documento de Word cambia.
Como tal, necesitaré actualizar la ruta del enlace.
Me gustaría hacer esto con una macro VBA y esto es lo que tengo hasta ahora:
Sub Replace_Link()
Dim iShp As InlineShape
Dim exWb As Excel.Workbook
For Each iShp In ActiveDocument.InlineShapes
With ActiveDocument
Set exWb = objExcel.Workbooks.Open(.Path & "\" & Replace$(.Name, ".docm", ".xlsm"))
End With
With iShp
If Not .OLEFormat Is Nothing Then
If Split(.OLEFormat.ClassType)(0) = "Excel" Then
.LinkFormat.SourcePath = exWb
End If
End If
End With
Next
End Sub
Obtengo un 'Tipo definido por el usuario no definido' para 'Dim exWb As Excel.Workbook'. También estoy bastante seguro de que necesitaré más código para incluir los enlaces de tipo 'Hoja de trabajo' que no se pueden actualizar con el comando 'inlineShape'.
¿Es esto algo en lo que alguien pueda ayudar? tia
Respuesta1
¿Ha agregado una referencia en su proyecto VBA a la "Biblioteca de objetos de Microsoft Excel 14.0"? (NB: La versión 14.0 puede ser diferente dependiendo de la versión de Excel que tengas instalada)
En su ventana de VBA, en el menú Herramientas, seleccione Referencias para abrir el cuadro de diálogo Referencias - Proyecto. Luego, desplácese hacia abajo en la lista, busque la biblioteca de Microsoft Excel y marque la casilla (entonces debería aparecer en la parte superior de su lista de referencias).