PowerPoint VBA para romper enlaces en OleFormat Objeto
-
13-12-2019 - |
Pregunta
Tengo una diapositiva de PowerPoint 2007 con dos objetos de Excel incrustados. Quiero acceder a la pestaña Hoja1 y romper todos los enlaces. Estaba tratando de copiar y pegar por valor, pero estoy atascado, aunque el código corre, no hace nada. Cualquier ayuda es muy apreciada.
Dim OSL como diapositiva Dim Osheet como objeto Dim PPAPP como PowerPoint.Application Dim Pppres como PowerPoint.Presentation
para cada OSL en ActivePresentation.slides Para cada OSH en OSL.SHIPES
ActiveWindow.View.GotoSlide oSl.SlideIndex
If oSh.Type = msoEmbeddedOLEObject Then
oSh.OLEFormat.Activate
With oSh.OLEFormat.Object
.Application.Workbooks(1).Worksheets(1).Cells.Copy
.Application.Workbooks(1).Worksheets(1).Cells.PasteSpecial Paste:=xlPasteValues
End With
ActiveWindow.Selection.Unselect
ActiveWindow.View.GotoSlide oSl.SlideIndex
End If
Next
siguiente Sub contrario
Solución
Actualizado / editado ... Omitir la línea de actualización de la aplicación, intente así en lugar:
If oSh.Type = msoEmbeddedOLEObject Then
With oSh.OLEFormat.Object ' added .Object here
.Activate
.Application.workbooks(1).worksheets(2).Cells.Copy
.Application.workbooks(1).worksheets(2).Cells.PasteSpecial Paste:=xlPasteValues
End With
End if
Primero, ya sea defina un LXPastevalues constante como Long= -4163 o reemplazar xlpastevalues con -4163 en el código anterior.